@dxos/plugin-assistant 0.8.4-main.f5c0578 → 0.8.4-main.fcfe5033a5
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 +8 -0
- package/dist/lib/browser/blueprints/index.mjs.map +7 -0
- 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-LMVTXH54.mjs +154 -0
- package/dist/lib/browser/chunk-LMVTXH54.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-ZEZA34MZ.mjs +65 -0
- package/dist/lib/browser/ensure-companion-chat-ZEZA34MZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3406 -249
- 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-THLK5YQC.mjs +136 -0
- package/dist/lib/browser/run-prompt-in-new-chat-THLK5YQC.mjs.map +7 -0
- package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs +54 -0
- package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +5 -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 +9 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- 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-W3JZ2F4T.mjs +155 -0
- package/dist/lib/node-esm/chunk-W3JZ2F4T.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-6K2WEWFP.mjs +66 -0
- package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +3406 -249
- 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-OUYKCMQ7.mjs +137 -0
- package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs.map +7 -0
- package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs +55 -0
- package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +5 -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 +2 -1
- 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 +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/ai-service.d.ts +4 -3
- package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +4 -2
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- 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 +6 -4
- package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +29 -9
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/local-model-resolver.d.ts +16 -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 +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +4 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- 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 +4 -3
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -4
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +15 -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 +36 -17
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/events.d.ts +10 -1
- package/dist/types/src/components/Chat/events.d.ts.map +1 -1
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +10 -0
- package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -0
- package/dist/types/src/components/ChatProgress/index.d.ts +2 -0
- package/dist/types/src/components/ChatProgress/index.d.ts.map +1 -0
- 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 +13 -4
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +19 -0
- package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -4
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +6 -4
- package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.d.ts +13 -11
- package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +24 -215
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +35 -0
- package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
- package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync.d.ts +43 -0
- package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
- package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
- 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 +15 -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 +6 -9
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +13 -7
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +12 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +10 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts +12 -0
- package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
- package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
- package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
- package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
- package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +12 -0
- package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
- package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
- package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
- package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
- package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +14 -15
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +15 -5
- package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -9
- 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 +21 -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 +16 -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 +21 -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 +9 -0
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +15 -0
- package/dist/types/src/containers/TracePanel/TracePanel.stories.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/execution-graph.d.ts +17 -0
- package/dist/types/src/containers/TracePanel/execution-graph.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/index.d.ts +5 -5
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts +8 -4
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts +7 -10
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatServices.d.ts +5 -10
- package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
- package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
- package/dist/types/src/hooks/useContextBinder.d.ts +5 -0
- package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -0
- package/dist/types/src/hooks/useContextObjects.d.ts +15 -0
- package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -0
- package/dist/types/src/hooks/useFilteredTypes.d.ts +3 -0
- package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
- package/dist/types/src/hooks/useFlush.d.ts.map +1 -0
- package/dist/types/src/hooks/usePresets.d.ts +3 -3
- 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 +3 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +5 -4
- 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 +3 -0
- package/dist/types/src/processor/index.d.ts.map +1 -0
- package/dist/types/src/{hooks → processor}/presets.d.ts +2 -2
- package/dist/types/src/processor/presets.d.ts.map +1 -0
- package/dist/types/src/processor/processor.d.ts +80 -0
- package/dist/types/src/processor/processor.d.ts.map +1 -0
- package/dist/types/src/processor/processor.test.d.ts +2 -0
- package/dist/types/src/processor/processor.test.d.ts.map +1 -0
- package/dist/types/src/queue-logger.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-generator.d.ts +8 -0
- package/dist/types/src/testing/test-generator.d.ts.map +1 -0
- package/dist/types/src/testing/test-sequence.d.ts +0 -4
- package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
- package/dist/types/src/testing/test-services.d.ts +2 -2
- package/dist/types/src/testing/test-services.d.ts.map +1 -1
- package/dist/types/src/testing/trace-timeline.test.d.ts +2 -0
- package/dist/types/src/testing/trace-timeline.test.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +2 -76
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +18 -40
- package/dist/types/src/types/Assistant.d.ts.map +1 -1
- package/dist/types/src/types/Settings.d.ts +11 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +32 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/events.d.ts +5 -0
- package/dist/types/src/types/events.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +14 -213
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +148 -102
- package/src/AssistantPlugin.tsx +216 -128
- 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/{components/Timeline → blueprints}/index.ts +1 -1
- package/src/capabilities/ai-service.ts +22 -20
- package/src/capabilities/app-graph-builder.ts +194 -146
- package/src/capabilities/blueprint-definition.ts +51 -25
- package/src/capabilities/companion-chat-provisioner.ts +164 -0
- package/src/capabilities/edge-model-resolver.ts +17 -13
- package/src/capabilities/index.ts +21 -11
- package/src/capabilities/local-model-resolver.ts +48 -0
- package/src/capabilities/markdown.ts +40 -0
- package/src/capabilities/migrations.ts +35 -0
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +139 -130
- package/src/capabilities/settings.ts +24 -12
- package/src/capabilities/state.ts +35 -0
- package/src/capabilities/toolkit.ts +7 -100
- package/src/components/AssistantSettings/AssistantSettings.stories.tsx +34 -0
- package/src/components/AssistantSettings/AssistantSettings.tsx +102 -75
- package/src/components/AssistantSettings/index.ts +2 -2
- package/src/components/Chat/Chat.tsx +278 -205
- package/src/components/Chat/events.ts +14 -1
- package/src/components/ChatProgress/ChatProgress.tsx +56 -0
- package/src/components/{SequenceEditor → ChatProgress}/index.ts +1 -1
- package/src/components/ChatPrompt/ChatActions.tsx +34 -30
- package/src/components/ChatPrompt/ChatOptions.stories.tsx +122 -0
- package/src/components/ChatPrompt/ChatOptions.tsx +380 -35
- package/src/components/ChatPrompt/ChatPresets.tsx +1 -0
- package/src/components/ChatPrompt/ChatReferences.tsx +40 -38
- package/src/components/ChatPrompt/ChatStatusIndicator.tsx +25 -22
- package/src/components/ChatThread/ChatThread.stories.tsx +91 -223
- package/src/components/ChatThread/ChatThread.tsx +77 -36
- package/src/components/ChatThread/Link.tsx +11 -8
- package/src/components/ChatThread/MarkdownStream.stories.tsx +243 -0
- package/src/components/ChatThread/registry.tsx +238 -0
- package/src/components/ChatThread/sync.test.ts +99 -0
- package/src/components/ChatThread/sync.ts +165 -0
- 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-2.md +56 -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 +86 -0
- package/src/components/ProcessTree/index.ts +5 -0
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +27 -18
- package/src/components/TemplateEditor/TemplateEditor.tsx +55 -69
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +23 -16
- package/src/components/TemplateEditor/TemplateForm.tsx +85 -38
- package/src/components/TemplateEditor/extensions/handlebars-extension.ts +274 -0
- package/src/components/TemplateEditor/extensions/index.ts +6 -0
- package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
- package/src/components/ToolBlock/ToolBlock.tsx +144 -0
- package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
- package/src/components/ToolBlock/index.ts +6 -0
- package/src/components/Toolbox/Toolbox.stories.tsx +17 -23
- package/src/components/Toolbox/Toolbox.tsx +80 -81
- package/src/components/index.ts +3 -8
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +120 -0
- package/src/containers/AgentArticle/AgentArticle.tsx +198 -0
- package/src/containers/AgentArticle/index.ts +5 -0
- package/src/containers/AgentProperties/AgentProperties.stories.tsx +100 -0
- package/src/containers/AgentProperties/AgentProperties.tsx +158 -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/containers/ChatCompanion/ChatCompanion.tsx +142 -0
- 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 +27 -23
- 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.stories.tsx +230 -0
- package/src/containers/TracePanel/TracePanel.tsx +114 -0
- package/src/containers/TracePanel/dxn-extractor.test.ts +153 -0
- package/src/containers/TracePanel/dxn-extractor.ts +178 -0
- package/src/containers/TracePanel/execution-graph.ts +425 -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/index.ts +5 -6
- package/src/hooks/useBlueprintRegistry.ts +52 -22
- package/src/hooks/useChatProcessor.ts +47 -38
- package/src/hooks/useChatServices.ts +12 -60
- package/src/hooks/useChatToolbarActions.ts +122 -0
- package/src/hooks/useContextBinder.ts +43 -0
- package/src/hooks/useContextObjects.ts +50 -0
- package/src/hooks/useFilteredTypes.ts +37 -0
- package/src/hooks/usePresets.ts +5 -5
- package/src/hooks/useReferencesProvider.ts +5 -8
- package/src/index.ts +3 -2
- package/src/meta.ts +15 -9
- 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 +6 -0
- package/src/{hooks → processor}/presets.ts +21 -6
- package/src/processor/processor.test.ts +40 -0
- package/src/processor/processor.ts +321 -0
- package/src/queue-logger.ts +29 -19
- package/src/testing/index.ts +1 -1
- package/src/testing/test-generator.ts +293 -0
- package/src/testing/test-sequence.ts +4 -29
- package/src/testing/test-services.ts +10 -14
- package/src/testing/trace-timeline.conversations.json +1 -0
- package/src/testing/trace-timeline.test.ts +246 -0
- package/src/translations.ts +161 -66
- package/src/types/Assistant.ts +8 -56
- package/src/types/Settings.ts +21 -0
- package/src/types/capabilities.ts +35 -0
- package/src/types/events.ts +11 -0
- package/src/types/index.ts +5 -1
- package/src/types/service.ts +27 -16
- package/src/vite-env.d.ts +30 -0
- package/dist/lib/browser/BlueprintContainer-H7H4BQ2C.mjs +0 -29
- package/dist/lib/browser/BlueprintContainer-H7H4BQ2C.mjs.map +0 -7
- package/dist/lib/browser/ChatContainer-SB7YC2XP.mjs +0 -77
- package/dist/lib/browser/ChatContainer-SB7YC2XP.mjs.map +0 -7
- package/dist/lib/browser/ChatDialog-X6PFOQSQ.mjs +0 -87
- package/dist/lib/browser/ChatDialog-X6PFOQSQ.mjs.map +0 -7
- package/dist/lib/browser/SequenceContainer-627OQ557.mjs +0 -163
- package/dist/lib/browser/SequenceContainer-627OQ557.mjs.map +0 -7
- package/dist/lib/browser/ai-service-7KJ5LXBT.mjs +0 -22
- package/dist/lib/browser/ai-service-7KJ5LXBT.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-ERU5XY2S.mjs +0 -166
- package/dist/lib/browser/app-graph-builder-ERU5XY2S.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-CMGIZAOW.mjs +0 -146
- package/dist/lib/browser/blueprint-definition-CMGIZAOW.mjs.map +0 -7
- package/dist/lib/browser/chunk-BVH6VK6Q.mjs +0 -2254
- package/dist/lib/browser/chunk-BVH6VK6Q.mjs.map +0 -7
- package/dist/lib/browser/chunk-JBFDQMUJ.mjs +0 -193
- package/dist/lib/browser/chunk-JBFDQMUJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-LKP65RPA.mjs +0 -20
- package/dist/lib/browser/chunk-LKP65RPA.mjs.map +0 -7
- package/dist/lib/browser/chunk-NZDCKQ6W.mjs +0 -89
- package/dist/lib/browser/chunk-NZDCKQ6W.mjs.map +0 -7
- package/dist/lib/browser/chunk-QB7OVS6Z.mjs +0 -16
- package/dist/lib/browser/chunk-QB7OVS6Z.mjs.map +0 -7
- package/dist/lib/browser/chunk-Y66UJUHV.mjs +0 -280
- package/dist/lib/browser/chunk-Y66UJUHV.mjs.map +0 -7
- package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs +0 -24
- package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-DGRO2XSG.mjs +0 -81
- package/dist/lib/browser/intent-resolver-DGRO2XSG.mjs.map +0 -7
- package/dist/lib/browser/react-surface-LPSIBHEJ.mjs +0 -163
- package/dist/lib/browser/react-surface-LPSIBHEJ.mjs.map +0 -7
- package/dist/lib/browser/settings-ZFNQYSYP.mjs +0 -23
- package/dist/lib/browser/settings-ZFNQYSYP.mjs.map +0 -7
- package/dist/lib/browser/toolkit-IW4FBLLB.mjs +0 -105
- package/dist/lib/browser/toolkit-IW4FBLLB.mjs.map +0 -7
- package/dist/lib/node-esm/BlueprintContainer-VH4EE4CM.mjs +0 -30
- package/dist/lib/node-esm/BlueprintContainer-VH4EE4CM.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-7JLMWHMX.mjs +0 -78
- package/dist/lib/node-esm/ChatContainer-7JLMWHMX.mjs.map +0 -7
- package/dist/lib/node-esm/ChatDialog-QDD722F2.mjs +0 -88
- package/dist/lib/node-esm/ChatDialog-QDD722F2.mjs.map +0 -7
- package/dist/lib/node-esm/SequenceContainer-EQ5NP2PG.mjs +0 -164
- package/dist/lib/node-esm/SequenceContainer-EQ5NP2PG.mjs.map +0 -7
- package/dist/lib/node-esm/ai-service-LDD32477.mjs +0 -23
- package/dist/lib/node-esm/ai-service-LDD32477.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-RCT4ANP2.mjs +0 -167
- package/dist/lib/node-esm/app-graph-builder-RCT4ANP2.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-AEWYMW6I.mjs +0 -147
- package/dist/lib/node-esm/blueprint-definition-AEWYMW6I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ETS2CIDF.mjs +0 -2255
- package/dist/lib/node-esm/chunk-ETS2CIDF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GAWXJ7K5.mjs +0 -90
- package/dist/lib/node-esm/chunk-GAWXJ7K5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GENVBE3B.mjs +0 -194
- package/dist/lib/node-esm/chunk-GENVBE3B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KOC6ESG7.mjs +0 -22
- package/dist/lib/node-esm/chunk-KOC6ESG7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-QS6GWTVA.mjs +0 -281
- package/dist/lib/node-esm/chunk-QS6GWTVA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-X6AANUHZ.mjs +0 -17
- package/dist/lib/node-esm/chunk-X6AANUHZ.mjs.map +0 -7
- package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs +0 -25
- package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-7CKWG7TZ.mjs +0 -82
- package/dist/lib/node-esm/intent-resolver-7CKWG7TZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-3EPAE4I4.mjs +0 -164
- package/dist/lib/node-esm/react-surface-3EPAE4I4.mjs.map +0 -7
- package/dist/lib/node-esm/settings-UI4VQCWW.mjs +0 -24
- package/dist/lib/node-esm/settings-UI4VQCWW.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-2VNUL77B.mjs +0 -106
- package/dist/lib/node-esm/toolkit-2VNUL77B.mjs.map +0 -7
- package/dist/types/src/capabilities/capabilities.d.ts +0 -11
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
- package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
- package/dist/types/src/components/ChatContainer.d.ts +0 -12
- 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/ChatMessage.d.ts +0 -18
- package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
- package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
- package/dist/types/src/components/ChatThread/reducer.d.ts +0 -12
- package/dist/types/src/components/ChatThread/reducer.d.ts.map +0 -1
- package/dist/types/src/components/PromptSettings.d.ts +0 -6
- package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
- package/dist/types/src/components/SequenceContainer.d.ts +0 -8
- package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
- package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
- package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
- package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -8
- package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
- package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
- package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
- package/dist/types/src/components/Timeline/Timeline.d.ts +0 -42
- package/dist/types/src/components/Timeline/Timeline.d.ts.map +0 -1
- package/dist/types/src/components/Timeline/Timeline.stories.d.ts +0 -11
- package/dist/types/src/components/Timeline/Timeline.stories.d.ts.map +0 -1
- package/dist/types/src/components/Timeline/index.d.ts +0 -2
- package/dist/types/src/components/Timeline/index.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -4
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts +0 -21
- package/dist/types/src/execution-graph/execution-graph.d.ts.map +0 -1
- package/dist/types/src/execution-graph/index.d.ts +0 -2
- package/dist/types/src/execution-graph/index.d.ts.map +0 -1
- package/dist/types/src/functions/analysis.d.ts +0 -5
- package/dist/types/src/functions/analysis.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/list.d.ts +0 -10
- package/dist/types/src/functions/list.d.ts.map +0 -1
- package/dist/types/src/functions/load.d.ts +0 -8
- package/dist/types/src/functions/load.d.ts.map +0 -1
- package/dist/types/src/hooks/chat-processor.d.ts +0 -72
- package/dist/types/src/hooks/chat-processor.d.ts.map +0 -1
- package/dist/types/src/hooks/errors.d.ts +0 -4
- package/dist/types/src/hooks/errors.d.ts.map +0 -1
- package/dist/types/src/hooks/presets.d.ts.map +0 -1
- package/dist/types/src/hooks/useExecutionGraph.d.ts +0 -7
- package/dist/types/src/hooks/useExecutionGraph.d.ts.map +0 -1
- package/dist/types/src/hooks/useResolveRef.d.ts +0 -4
- package/dist/types/src/hooks/useResolveRef.d.ts.map +0 -1
- package/dist/types/src/parser/filter-generator.d.ts +0 -4
- package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
- package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
- package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
- package/dist/types/src/parser/index.d.ts +0 -4
- package/dist/types/src/parser/index.d.ts.map +0 -1
- package/dist/types/src/parser/query-parser.d.ts +0 -15
- package/dist/types/src/parser/query-parser.d.ts.map +0 -1
- package/dist/types/src/parser/query-parser.test.d.ts +0 -2
- package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
- package/dist/types/src/parser/types.d.ts +0 -24
- package/dist/types/src/parser/types.d.ts.map +0 -1
- package/dist/types/src/stories/Chat.stories.d.ts +0 -268
- package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
- package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -5
- package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/ChatContainer.d.ts +0 -5
- package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
- package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -5
- package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/SurfaceContainer.d.ts +0 -8
- package/dist/types/src/stories/components/SurfaceContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/TasksContainer.d.ts +0 -5
- package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
- package/dist/types/src/stories/components/index.d.ts +0 -8
- package/dist/types/src/stories/components/index.d.ts.map +0 -1
- package/dist/types/src/stories/components/types.d.ts +0 -7
- package/dist/types/src/stories/components/types.d.ts.map +0 -1
- package/dist/types/src/stories/hooks/index.d.ts +0 -3
- package/dist/types/src/stories/hooks/index.d.ts.map +0 -1
- package/dist/types/src/stories/hooks/useFlush.d.ts.map +0 -1
- package/dist/types/src/stories/hooks/useMatcherExtension.d.ts +0 -3
- package/dist/types/src/stories/hooks/useMatcherExtension.d.ts.map +0 -1
- package/dist/types/src/stories/testing/data.d.ts +0 -142
- package/dist/types/src/stories/testing/data.d.ts.map +0 -1
- package/dist/types/src/stories/testing/index.d.ts +0 -3
- package/dist/types/src/stories/testing/index.d.ts.map +0 -1
- package/dist/types/src/stories/testing/testing.d.ts +0 -26
- package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
- package/dist/types/src/testing/test-functions.d.ts +0 -6
- package/dist/types/src/testing/test-functions.d.ts.map +0 -1
- package/dist/types/src/tools/function.d.ts +0 -5
- package/dist/types/src/tools/function.d.ts.map +0 -1
- package/dist/types/src/tools/index.d.ts +0 -3
- package/dist/types/src/tools/index.d.ts.map +0 -1
- package/dist/types/src/tools/openapi.d.ts +0 -10
- package/dist/types/src/tools/openapi.d.ts.map +0 -1
- package/dist/types/src/tools/openapi.test.d.ts +0 -2
- package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
- package/dist/types/src/types/AssistantAction.d.ts +0 -91
- package/dist/types/src/types/AssistantAction.d.ts.map +0 -1
- package/src/capabilities/capabilities.ts +0 -22
- package/src/capabilities/intent-resolver.ts +0 -73
- package/src/components/BlueprintContainer.tsx +0 -24
- package/src/components/ChatContainer.tsx +0 -69
- package/src/components/ChatThread/ChatMessage.tsx +0 -291
- package/src/components/ChatThread/ToolBlock.tsx +0 -125
- package/src/components/ChatThread/reducer.ts +0 -52
- package/src/components/PromptSettings.tsx +0 -89
- package/src/components/SequenceContainer.tsx +0 -133
- package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -33
- package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
- package/src/components/Timeline/Timeline.stories.tsx +0 -144
- package/src/components/Timeline/Timeline.tsx +0 -202
- package/src/events.ts +0 -11
- package/src/execution-graph/execution-graph.ts +0 -184
- package/src/execution-graph/index.ts +0 -5
- package/src/functions/analysis.ts +0 -20
- package/src/functions/index.ts +0 -7
- package/src/functions/list.ts +0 -42
- package/src/functions/load.ts +0 -43
- package/src/hooks/chat-processor.ts +0 -260
- package/src/hooks/errors.ts +0 -8
- package/src/hooks/useExecutionGraph.ts +0 -16
- package/src/hooks/useResolveRef.ts +0 -33
- package/src/parser/filter-generator.test.ts +0 -32
- package/src/parser/filter-generator.ts +0 -74
- package/src/parser/index.ts +0 -7
- package/src/parser/query-parser.test.ts +0 -139
- package/src/parser/query-parser.ts +0 -199
- package/src/parser/types.ts +0 -34
- package/src/shims.d.ts +0 -8
- package/src/stories/Chat.stories.tsx +0 -317
- package/src/stories/components/BlueprintContainer.tsx +0 -34
- package/src/stories/components/ChatContainer.tsx +0 -80
- package/src/stories/components/GraphContainer.tsx +0 -118
- package/src/stories/components/LoggingContainer.tsx +0 -29
- package/src/stories/components/SurfaceContainer.tsx +0 -62
- package/src/stories/components/TasksContainer.tsx +0 -51
- package/src/stories/components/index.ts +0 -12
- package/src/stories/components/types.ts +0 -11
- package/src/stories/hooks/index.ts +0 -6
- package/src/stories/hooks/useMatcherExtension.ts +0 -45
- package/src/stories/testing/data.ts +0 -130
- package/src/stories/testing/index.ts +0 -6
- package/src/stories/testing/testing.tsx +0 -163
- package/src/testing/test-functions.ts +0 -16
- package/src/tools/function.ts +0 -49
- package/src/tools/index.ts +0 -6
- package/src/tools/openapi.test.ts +0 -219
- package/src/tools/openapi.ts +0 -341
- package/src/types/AssistantAction.ts +0 -54
- package/src/typings.d.ts +0 -9
- /package/dist/types/src/{stories/hooks → hooks}/useFlush.d.ts +0 -0
- /package/src/{stories/hooks → hooks}/useFlush.ts +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/hooks/useBlueprintRegistry.ts", "../../../src/hooks/useChatProcessor.ts", "../../../src/hooks/chat-processor.ts", "../../../src/hooks/errors.ts", "../../../src/hooks/presets.ts", "../../../src/hooks/useChatServices.ts", "../../../src/capabilities/index.ts", "../../../src/hooks/useOnline.ts", "../../../src/hooks/usePresets.ts", "../../../src/hooks/useReferencesProvider.ts", "../../../src/hooks/useResolveRef.ts", "../../../src/hooks/useExecutionGraph.ts", "../../../src/execution-graph/execution-graph.ts", "../../../src/components/Toolbox/Toolbox.tsx", "../../../src/tools/function.ts", "../../../src/tools/openapi.ts", "../../../src/components/Chat/Chat.tsx", "../../../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/ChatMessage.tsx", "../../../src/components/ChatThread/Link.tsx", "../../../src/components/ChatThread/ToolBlock.tsx", "../../../src/components/ChatThread/reducer.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useSignalEffect } from '@preact/signals-react';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { Blueprint } from '@dxos/blueprints';\nimport { type Space } from '@dxos/client/echo';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { isNonNullable } 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(Capabilities.BlueprintDefinition);\n return useMemo(() => new Blueprint.Registry(blueprints), [blueprints]);\n};\n\n/**\n * Create reactive map of active blueprints (by key).\n */\nexport const useBlueprints = ({ context }: { context?: AiContextBinder }) => {\n const [active, setActive] = useState<Map<string, Blueprint.Blueprint>>(new Map());\n useSignalEffect(() => {\n const refs = [...(context?.blueprints.value ?? [])];\n const t = setTimeout(async () => {\n const blueprints = (await Ref.Array.loadAll(refs)).filter(isNonNullable);\n setActive(new Map(blueprints.map((blueprint) => [blueprint.key, blueprint])));\n });\n\n return () => clearTimeout(t);\n });\n\n return active;\n};\n\n// TODO(burdon): Context should manage ephemeral state of bindings until prompt is issued?\nexport const useBlueprintHandlers = ({\n space,\n context,\n blueprintRegistry,\n}: {\n space: Space;\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 space.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 // NOTE: Possible race condition with other peers.\n storedBlueprint = space.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 [space, context, blueprintRegistry],\n );\n\n return { onUpdateBlueprint };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-rx/rx-react';\nimport { type Layer } from 'effect';\nimport { useContext, useMemo } from 'react';\n\nimport { useIntentDispatcher } from '@dxos/app-framework';\nimport { AiConversation } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { log } from '@dxos/log';\nimport { type Queue, type Space, fullyQualifiedId } from '@dxos/react-client/echo';\n\nimport { AiChatProcessor, type AiChatServices, type AiServicePreset } from '../hooks';\nimport { type Assistant } from '../types';\n\nexport type UseChatProcessorProps = {\n space?: Space;\n chat?: Assistant.Chat;\n preset?: AiServicePreset;\n services?: Layer.Layer<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 const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n // Tools and context.\n const chatId = useMemo(() => (chat ? fullyQualifiedId(chat) : undefined), [chat]);\n const extensions = useMemo(() => ({ space, dispatch, pivotId: chatId }), [dispatch, space, chatId]);\n\n const conversation = useMemo(() => {\n if (!chat?.queue.target) {\n return;\n }\n\n return new AiConversation({ queue: chat.queue.target as Queue<any> });\n }, [chat?.queue.target]);\n\n // Create processor.\n // TODO(burdon): Updated on each query update above; should just update current processor?\n const processor = useMemo(() => {\n if (!services || !conversation) {\n return undefined;\n }\n\n log('creating processor', {\n preset,\n model: preset?.model,\n settings,\n });\n\n return new AiChatProcessor(services, conversation, {\n extensions,\n blueprintRegistry,\n observableRegistry,\n model: preset?.model,\n });\n }, [services, conversation, blueprintRegistry, extensions, preset]);\n\n return processor;\n};\n\n// TODO(dmaretskyi): Extract.\nexport const Stable = Object.freeze({\n array: [] as readonly never[],\n object: {} as {},\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Registry, Result, Rx } from '@effect-rx/rx-react';\nimport { Effect, type Layer, Option, Stream, pipe } from 'effect';\n\nimport { AiService, DEFAULT_EDGE_MODEL, type ModelName, type ModelRegistry } from '@dxos/ai';\nimport { type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport {\n type AiConversation,\n type AiConversationRunParams,\n AiSession,\n ArtifactDiffResolver,\n createSystemPrompt,\n} from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { Context } from '@dxos/context';\nimport { Obj } from '@dxos/echo';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { log } from '@dxos/log';\nimport { Filter, type Space, getVersion } from '@dxos/react-client/echo';\nimport { type ContentBlock, DataType } from '@dxos/schema';\n\nimport { AiServiceOverloadedError } from './errors';\nimport { type AiChatServices } from './useChatServices';\n\n// TODO(burdon): Is this still used?\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nexport type AiRequestOptions = {\n // Empty for now.\n};\n\nexport type AiChatProcessorOptions = {\n model?: ModelName;\n modelRegistry?: ModelRegistry;\n blueprintRegistry?: Blueprint.Registry;\n observableRegistry?: Registry.Registry;\n extensions?: ToolContextExtensions;\n} & Pick<AiConversationRunParams<any>, 'system'>;\n\nconst defaultOptions: Partial<AiChatProcessorOptions> = {\n model: DEFAULT_EDGE_MODEL,\n};\n\n/**\n * Handles interactions with the AI service.\n * Maintains a queue of messages and handles streaming responses from the AI service.\n * Executes tools based on AI responses.\n * Supports cancellation of in-progress requests.\n */\nexport class AiChatProcessor {\n /**\n * Last error.\n */\n // TODO(wittjosiah): Error should come from the message stream.\n readonly error = Rx.make<Option.Option<Error>>(Option.none());\n\n /** Rx registry. */\n private readonly _observableRegistry: Registry.Registry;\n\n /** Current session. */\n private readonly _session = Rx.make<Option.Option<AiSession>>(Option.none());\n\n /**\n * Current streaming message (from the AI service).\n */\n private readonly _streaming: Rx.Rx<Result.Result<Option.Option<DataType.Message>, Error>> = Rx.make((get) => {\n return pipe(\n get(this._session),\n Option.map((session) => Stream.fromQueue(session.blockQueue)),\n Option.getOrElse(() => Stream.make()),\n Stream.scan<Option.Option<DataType.Message>, Option.Option<ContentBlock.Any>>(Option.none(), (acc, blockOption) =>\n Option.flatMap(blockOption, (block) =>\n acc.pipe(\n Option.match({\n onNone: () => [block],\n onSome: (message) => [...message.blocks.filter((b) => !b.pending), block],\n }),\n Option.some,\n Option.map((blocks) =>\n Obj.make(DataType.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks,\n }),\n ),\n ),\n ),\n ),\n );\n });\n\n /**\n * Streaming state.\n */\n readonly streaming: Rx.Rx<boolean> = Rx.make((get) => {\n return pipe(\n get(this._streaming),\n Result.map((streaming) => Option.isSome(streaming)),\n Result.getOrElse(() => false),\n );\n });\n\n /**\n * Pending messages (incl. the current user request).\n */\n private readonly _pending: Rx.Rx<Result.Result<DataType.Message[], Error>> = Rx.make((get) => {\n // TODO(wittjosiah): For some reason using Option.map here loses reactivity.\n const session = get(this._session);\n return Option.isSome(session)\n ? pipe(\n session.value.messageQueue,\n Stream.fromQueue,\n Stream.scan<DataType.Message[], DataType.Message>([], (acc, message) => [...acc, message]),\n )\n : Stream.make();\n });\n\n /**\n * Array of Messages (incl. the current message being streamed).\n */\n readonly messages: Rx.Rx<Result.Result<DataType.Message[], Error>> = Rx.make((get) => {\n const streaming = get(this._streaming);\n return Result.map(get(this._pending), (pending) =>\n Result.match(streaming, {\n onInitial: () => pending,\n onSuccess: (streaming) =>\n Option.match(streaming.value, {\n onNone: () => pending,\n onSome: (message) => [...pending, message],\n }),\n onFailure: () => pending,\n }),\n );\n });\n\n constructor(\n // TODO(dmaretskyi): Replace this with effect's ManagedRuntime wrapping this layer.\n private readonly _services: Layer.Layer<AiChatServices>,\n private readonly _conversation: AiConversation,\n private readonly _options: AiChatProcessorOptions = defaultOptions,\n ) {\n // Initialize registries and defaults before using in other logic.\n this._observableRegistry = this._options.observableRegistry ?? Registry.make();\n if (this._options.model && !this._options.system) {\n const capabilities = this._options.modelRegistry?.getCapabilities(this._options.model) ?? {};\n this._options.system = createSystemPrompt(capabilities);\n }\n }\n\n get context() {\n return this._conversation.context;\n }\n\n get conversation() {\n return this._conversation;\n }\n\n get blueprintRegistry() {\n return this._options.blueprintRegistry;\n }\n\n /**\n * Make GPT request.\n */\n async request(message: string, _options: AiRequestOptions = {}): Promise<void> {\n await using ctx = Context.default(); // Auto-disposed at the end of this block.\n\n const session = new AiSession();\n this._observableRegistry.set(this._session, Option.some(session));\n\n ctx.onDispose(() => {\n log.info('onDispose', { session, isDisposed: ctx.disposed });\n Option.match(this._observableRegistry.get(this._session), {\n onSome: (s) => {\n if (s === session) {\n this._observableRegistry.set(this._session, Option.none());\n }\n },\n onNone: () => {},\n });\n });\n\n try {\n const messages = await runAndForwardErrors(\n this._conversation\n .run({\n session,\n prompt: message,\n system: this._options.system,\n })\n .pipe(\n Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),\n // TODO(dmaretskyi): Move ArtifactDiffResolver upstream.\n Effect.provideService(ArtifactDiffResolver, this._artifactDiffResolver),\n Effect.provide(this._services),\n Effect.tapErrorCause((cause) => {\n log.error('error', { cause });\n return Effect.void;\n }),\n ),\n );\n\n log('completed', { messages });\n } catch (err) {\n log.catch(err);\n if (err instanceof Error && err.message.includes('Overloaded')) {\n this._observableRegistry.set(\n this.error,\n Option.some(new AiServiceOverloadedError('AI service overloaded', { cause: err })),\n );\n } else {\n this._observableRegistry.set(this.error, Option.some(new Error('AI service error', { cause: err })));\n }\n }\n }\n\n /**\n * Cancel pending requests.\n */\n async cancel(): Promise<void> {\n log.info('cancelling...');\n\n // TODO(dmaretskyi): Abort using Fiber.interrupt.\n }\n\n private _artifactDiffResolver: ArtifactDiffResolver.Service = {\n resolve: async (artifacts) => {\n const space = this._options.extensions?.space;\n if (!space) {\n return new Map();\n }\n\n const versions = new Map();\n await Promise.all(\n artifacts.map(async (artifact) => {\n const {\n objects: [object],\n } = await space.db.query(Filter.ids(artifact.id)).run();\n if (!object) {\n return;\n }\n\n versions.set(artifact.id, {\n version: getVersion(object),\n diff: `Current state: ${JSON.stringify(object)}`,\n });\n }),\n );\n return versions;\n },\n };\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// TODO(wittjosiah): Move to ai-service-client.\nexport class AiServiceOverloadedError extends Error {\n code = 'AI_SERVICE_OVERLOADED';\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { type ModelName } from '@dxos/ai';\n\nconst ModelProviders = ['dxos-local', 'dxos-remote', 'lm-studio'] as const;\n\nconst ModelProvider = Schema.Literal(...ModelProviders);\ntype ModelProvider = Schema.Schema.Type<typeof ModelProvider>;\n\nexport type AiServicePreset = {\n id: string;\n provider: ModelProvider;\n model: ModelName;\n label?: string;\n};\n\nconst createModelLabel = (model: ModelName) => {\n const parts = model.split('/');\n return parts[parts.length - 1];\n};\n\n// TODO(burdon): Users should be able to create and edit presets.\nexport const AiServicePresets: AiServicePreset[] = [\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-opus-4-0' as const,\n },\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-3-5-haiku-20241022' as const,\n },\n {\n provider: 'lm-studio' as const,\n model: '@google/gemma-3-12b' as const,\n },\n {\n provider: 'lm-studio' as const,\n model: '@mlx-community/llama-3.2-3b-instruct' as const,\n },\n { model: 'deepseek-r1:latest' as const, provider: 'dxos-local' as const },\n].map(\n ({ model, provider }, i) =>\n ({\n id: `preset-${i}`,\n provider,\n model,\n label: createModelLabel(model),\n }) satisfies AiServicePreset,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AiTool, AiToolkit } from '@effect/ai';\nimport { Layer } from 'effect';\nimport { useMemo } from 'react';\n\nimport { type AiService, type ToolExecutionService, type ToolResolverService } from '@dxos/ai';\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from '@dxos/assistant';\nimport { type Space } from '@dxos/client/echo';\nimport {\n ComputeEventLogger,\n CredentialsService,\n DatabaseService,\n LocalFunctionExecutionService,\n QueueService,\n RemoteFunctionExecutionService,\n TracingService,\n} from '@dxos/functions';\n\nimport { AssistantCapabilities } from '../capabilities';\nimport type { Assistant } from '../types';\n\n// TODO(burdon): Deconstruct into separate layers?\nexport type AiChatServices =\n | AiService.AiService\n | CredentialsService\n | DatabaseService\n | QueueService\n | RemoteFunctionExecutionService\n | ToolResolverService\n | ToolExecutionService\n | TracingService;\n\nexport type UseChatServicesProps = {\n space?: Space;\n chat?: Assistant.Chat;\n};\n\n/**\n * Construct service layer.\n */\nexport const useChatServices = ({ space, chat }: UseChatServicesProps): Layer.Layer<AiChatServices> | undefined => {\n const serviceLayer = useCapabilities(AssistantCapabilities.AiServiceLayer).at(0) ?? Layer.die('AiService not found');\n const functions = useCapabilities(Capabilities.Functions);\n const toolkits = useCapabilities(Capabilities.Toolkit);\n const handlers = useCapabilities(Capabilities.ToolkitHandler);\n\n return useMemo(() => {\n const allFunctions = functions.flat();\n // TODO(wittjosiah): Don't cast.\n const toolkit = AiToolkit.merge(...toolkits) as AiToolkit.Any as AiToolkit.AiToolkit<AiTool.Any>;\n const handlersLayer = Layer.mergeAll(Layer.empty, ...handlers);\n return Layer.mergeAll(\n serviceLayer,\n makeToolResolverFromFunctions(allFunctions, toolkit),\n makeToolExecutionServiceFromFunctions(allFunctions, toolkit, handlersLayer),\n CredentialsService.layerFromDatabase(),\n ComputeEventLogger.layerFromTracing,\n ).pipe(\n Layer.provideMerge(\n Layer.mergeAll(\n space ? DatabaseService.layer(space.db) : DatabaseService.notAvailable,\n space ? QueueService.layer(space.queues) : QueueService.notAvailable,\n chat?.traceQueue?.target ? TracingService.layerQueue(chat.traceQueue?.target) : TracingService.layerNoop,\n LocalFunctionExecutionService.layer,\n RemoteFunctionExecutionService.mockLayer,\n ),\n ),\n );\n }, [space, functions, toolkits, handlers, chat?.traceQueue?.target]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport * from './capabilities';\n\nexport const AiService = lazy(() => import('./ai-service'));\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const BlueprintDefinition = lazy(() => import('./blueprint-definition'));\nexport const EdgeModelResolver = lazy(() => import('./edge-model-resolver'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const Settings = lazy(() => import('./settings'));\nexport const Toolkit = lazy(() => import('./toolkit'));\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';\n\nimport { type AiServicePreset, AiServicePresets } from './presets';\n\nexport type UsePresets = {\n preset: AiServicePreset | undefined;\n} & Pick<ChatPromptProps, 'presets' | 'onChangePreset'>;\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 handleChangePreset = useCallback<NonNullable<ChatPromptProps['onChangePreset']>>(\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 onChangePreset: handleChangePreset,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\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(Capabilities.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.Any))\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.ids(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 { useMemo, useSyncExternalStore } from 'react';\n\nimport { type Space } from '@dxos/client/echo';\nimport { type Ref } from '@dxos/echo';\n\n// TODO(burdon): Factor out.\nexport const useResolvedRef = <T>(space: Space, ref: Ref.Ref<T>): T | undefined => {\n const { subscribe, getSnapshot } = useMemo(() => {\n const resolver = space.db.graph.createRefResolver({});\n let currentCallback: (() => void) | undefined = undefined;\n\n return {\n subscribe: (cb: () => void) => {\n currentCallback = cb;\n return () => {\n if (currentCallback === cb) {\n currentCallback = undefined;\n }\n };\n },\n getSnapshot: () =>\n resolver?.resolveSync(ref.dxn, true, () => {\n currentCallback?.();\n }) as T | undefined,\n };\n }, [space, ref.dxn.toString()]);\n\n return useSyncExternalStore<T | undefined>(subscribe, getSnapshot);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Queue } from '@dxos/client/echo';\nimport { Obj, type Ref } from '@dxos/echo';\nimport { useQueue } from '@dxos/react-client/echo';\n\nimport { ExecutionGraph } from '../execution-graph/execution-graph';\n\nexport const useExecutionGraph = (traceQueueRef?: Ref.Ref<Queue>) => {\n const traceQueue = useQueue(traceQueueRef?.dxn);\n const graph = new ExecutionGraph();\n graph.addEvents(traceQueue?.objects.filter(Obj.isObject) ?? []);\n return graph.getGraph();\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { AgentStatus } from '@dxos/ai';\nimport { Obj, type Ref } from '@dxos/echo';\nimport { MESSAGE_PROPERTY_TOOL_CALL_ID } from '@dxos/functions';\nimport type { ObjectId } from '@dxos/keys';\nimport { DataType } from '@dxos/schema';\n\nimport type { Branch, Commit } from '../components';\n\n// TODO(dmaretskyi): Deduplicate. Importing from components causes an error.\nenum IconType {\n // General status.\n WARN = 'ph--warning-circle--regular',\n CHECK = 'ph--check-circle--regular',\n ROCKET = 'ph--rocket--regular',\n X = 'ph--x-circle--regular',\n FLAG = 'ph--flag--regular',\n TIMER = 'ph--timer--regular',\n\n // Interactions.\n USER = 'ph--user--regular',\n USER_INTERACTION = 'ph--user-sound--regular',\n AGENT = 'ph--robot--regular',\n THINK = 'ph--brain--regular',\n LINK = 'ph--link--regular',\n TOOL = 'ph--wrench--regular',\n}\n\n/**\n * Models the execution graph based on a stream of events.\n */\nexport class ExecutionGraph {\n // TODO(dmaretskyi): Evolve the internal state to support chats, functions, circuit workflows, etc.\n private _commits: Commit[] = [];\n private _branchNames = new Set<string>();\n\n /**\n * Adds events to the graph.\n */\n addEvents(events: Obj.Any[]) {\n for (const event of events) {\n if (Obj.instanceOf(DataType.Message, event)) {\n const messageCommits = chatMessageToCommit(event);\n this._commits.push(...messageCommits);\n messageCommits.map((c) => c.branch).forEach((branch) => this._branchNames.add(branch));\n } else if (Obj.instanceOf(AgentStatus, event)) {\n const branch = getBranchName({ parentMessage: event.parentMessage, toolCallId: event.toolCallId });\n this._branchNames.add(branch);\n this._commits.push({\n id: event.id,\n branch,\n message: event.message,\n icon: IconType.FLAG,\n parent:\n event.parentMessage && event.toolCallId ? getToolCallId(event.parentMessage, event.toolCallId) : undefined,\n });\n }\n }\n }\n\n /**\n * Returns the current state of the graph.\n */\n getGraph(): { commits: Commit[]; branches: Branch[] } {\n return {\n commits: this._commits,\n branches: Array.from(this._branchNames).map((name) => ({ name })),\n };\n }\n}\n\nconst getToolCallId = (messageId: ObjectId, toolCallId: string) => `${messageId}_toolCall_${toolCallId}`;\nconst getToolResultId = (messageId: ObjectId, toolCallId: string) => `${messageId}_toolResult_${toolCallId}`;\nconst getGenericBlockId = (messageId: ObjectId, idx: number) => `${messageId}_block_${idx}`;\n\nconst getBranchName = (opts: { parentMessage?: ObjectId; toolCallId?: string }) => {\n if (opts.parentMessage && opts.toolCallId) {\n return `${opts.parentMessage}_${opts.toolCallId}`;\n } else if (opts.parentMessage) {\n return opts.parentMessage;\n } else {\n return 'main';\n }\n};\n\nconst getMessageBranch = (message: DataType.Message) => {\n return getBranchName({\n parentMessage: message.parentMessage,\n toolCallId: message.properties?.[MESSAGE_PROPERTY_TOOL_CALL_ID],\n });\n};\n\nconst getParentId = (message: DataType.Message) => {\n if (message.parentMessage && message.properties?.[MESSAGE_PROPERTY_TOOL_CALL_ID]) {\n return getToolCallId(message.parentMessage, message.properties[MESSAGE_PROPERTY_TOOL_CALL_ID]);\n } else {\n return undefined;\n }\n};\n\nconst chatMessageToCommit = (message: DataType.Message): Commit[] => {\n return message.blocks.map((block, idx) => {\n const branch = getMessageBranch(message);\n const parent = getParentId(message);\n switch (block._tag) {\n case 'toolCall':\n return {\n id: getToolCallId(message.id, block.toolCallId),\n branch,\n parent,\n icon: IconType.TOOL,\n message: block.name,\n };\n case 'toolResult':\n return {\n id: getToolResultId(message.id, block.toolCallId),\n branch,\n parent,\n icon: block.error ? IconType.X : IconType.CHECK,\n message: block.error ? block.error : block.name,\n };\n case 'status':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parent,\n message: block.statusText,\n icon: IconType.FLAG,\n };\n case 'reasoning':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parent,\n message: block.reasoningText ?? 'Thinking...',\n icon: IconType.THINK,\n };\n case 'text':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parent,\n icon: message.sender.role === 'user' ? IconType.USER : IconType.AGENT,\n message: ellipsisEnd(block.text, 64),\n };\n case 'reference':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parent,\n icon: IconType.LINK,\n message: stringifyRef(block.reference),\n };\n default:\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parent,\n message: block._tag,\n };\n }\n });\n};\n\nconst ellipsisEnd = (str: string, length: number) => {\n if (str.length > length) {\n return str.slice(0, length - 1) + '…';\n }\n return str;\n};\n\nconst stringifyRef = (ref: Ref.Any) => {\n if (ref.target) {\n return stringifyObject(ref.target);\n }\n return ref.dxn.asEchoDXN()?.echoId ?? ref.dxn.asQueueDXN()?.objectId ?? '';\n};\n\nconst stringifyObject = (obj: Obj.Any) => {\n return Obj.getLabel(obj) ?? Obj.getTypename(obj) ?? obj.id;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, Fragment, useEffect, useState } from 'react';\n\nimport { type Tool } from '@dxos/ai';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { type Ref } from '@dxos/echo';\nimport { FunctionType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { Filter, type Space, useQuery } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { type AiChatProcessor } from '../../hooks';\nimport { meta } from '../../meta';\nimport { createToolsFromService } from '../../tools';\nimport { ServiceType } from '../../types';\n\nexport type ToolboxProps = ThemedClassName<{\n services?: { service: ServiceType; tools: Tool[] }[];\n functions?: FunctionType[];\n // TODO(burdon): Combine into single array.\n blueprints?: readonly Ref.Ref<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(({ target }) => ({\n name: target?.name ?? '',\n description: target?.description ?? '',\n subitems: target?.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 }, tools }) => ({\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\n {!blueprints?.length && !activeBlueprints?.length && !services?.length && !functions?.length && (\n <div>{t('no tools')}</div>\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 px-2', striped && stripeClassNames);\n\n return (\n <div>\n <h1 className='px-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 space?: Space;\n processor?: AiChatProcessor;\n}>;\n\nexport const ToolboxContainer = ({ classNames, space, processor }: ToolboxContainerProps) => {\n // Registered services.\n const services = useQuery(space, Filter.type(ServiceType));\n const [serviceTools, setServiceTools] = useState<{ service: ServiceType; tools: Tool[] }[]>([]);\n useEffect(() => {\n log('creating service tools...', { services: services.length });\n queueMicrotask(async () => {\n const tools = await Promise.all(\n services.map(async (service) => ({ service, tools: await createToolsFromService(service) })),\n );\n\n setServiceTools(tools);\n });\n }, [services]);\n\n // Deployed functions.\n const functions = useQuery(space, Filter.type(FunctionType));\n\n return (\n <Toolbox\n classNames={classNames}\n blueprints={processor?.context.blueprints.value}\n services={serviceTools}\n functions={functions}\n />\n );\n};\n\nconst safeToolId = (name: string) => {\n return name.split('_').pop();\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// ISSUE(burdon): deprecated types: ToolResult\n\nimport { type ExecutableTool, ToolResult, createTool } from '@dxos/ai';\nimport { Type } from '@dxos/echo';\nimport { getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';\nimport { type FunctionType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type SpaceId } from '@dxos/react-client/echo';\nimport { getMeta } from '@dxos/react-client/echo';\n\n// TODO(burdon): Move to @dxos/ai.\nexport const convertFunctionToTool = (\n fn: FunctionType,\n edgeUrl: string,\n spaceId?: SpaceId | undefined,\n): ExecutableTool | undefined => {\n if (!fn.description || !fn.inputSchema) {\n return undefined;\n }\n const existingFunctionUrl = getUserFunctionUrlInMetadata(getMeta(fn));\n if (!existingFunctionUrl) {\n return undefined;\n }\n\n const url = getInvocationUrl(existingFunctionUrl, edgeUrl, { spaceId });\n\n // TODO(burdon): Should be DXN?\n return createTool('user-function', {\n name: fn.name,\n description: fn.description,\n schema: Type.toEffectSchema(fn.inputSchema),\n execute: async (input) => {\n log.info('execute function tool', { name: fn.name, url, input });\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(input),\n });\n\n return ToolResult.Success(await response.text());\n },\n });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// ISSUE(burdon): tools\n// @ts-ignore\n\nimport { Schema } from 'effect';\nimport jsonpointer from 'jsonpointer';\nimport { type OpenAPIV2, type OpenAPIV3_1 } from 'openapi-types';\n\nimport { type ExecutableTool, ToolResult, createRawTool } from '@dxos/ai';\nimport { Type } from '@dxos/echo';\nimport { normalizeSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { deepMapValues } from '@dxos/util';\n\nimport type { ApiAuthorization, ServiceType } from '../types';\n\nexport type CreateToolsFromApiOptions = {\n authorization?: ApiAuthorization;\n instructions?: string;\n};\n\nexport const createToolsFromService = async (service: ServiceType): Promise<ExecutableTool[]> => {\n invariant(service.interfaces?.length === 1 && service.interfaces[0].kind === 'api');\n const iface = service.interfaces[0];\n invariant(iface.schemaUrl);\n invariant(iface.schemaUrl);\n return createToolsFromApi(iface.schemaUrl, { authorization: iface.authorization });\n};\n\nexport const createToolsFromApi = async (\n url: string,\n options?: CreateToolsFromApiOptions,\n): Promise<ExecutableTool[]> => {\n const res = await fetch(url);\n const spec = (await res.json()) as OpenAPIV2.Document;\n log('spec', { spec });\n\n const tools: ExecutableTool[] = [];\n for (const [path, pathItem] of Object.entries(spec.paths)) {\n if (typeof pathItem !== 'object') {\n continue;\n }\n\n const { ...methods } = pathItem;\n for (const [method, m] of Object.entries(methods)) {\n const methodItem: OpenAPIV2.OperationObject = m as OpenAPIV2.OperationObject;\n log('methodItem', { path, method, methodItem });\n\n const parametersResolved: OpenAPIV2.ParameterObject[] =\n methodItem.parameters?.map((parameter: any) => {\n const resolved = resolveJsonSchema(parameter, spec);\n return resolved;\n }) ?? [];\n\n const inputSchema: Type.JsonSchema = {\n type: 'object',\n properties: {},\n };\n\n const endpointParameters: OpenAPIV2.ParameterObject[] = [];\n for (const parameter of parametersResolved) {\n log('parameter', { parameter });\n\n if (\n options?.authorization?.type === 'api-key' &&\n options.authorization.placement.type === 'query' &&\n parameter.in === 'query' &&\n parameter.name === options.authorization.placement.name\n ) {\n continue;\n }\n\n endpointParameters.push(parameter);\n\n if (parameter.schema) {\n inputSchema.properties![parameter.name] = normalizeSchema(parameter.schema);\n } else if (typeof parameter.type === 'string') {\n const { name, in: _in, required, ...schema } = parameter;\n inputSchema.properties![name] = normalizeSchema(schema);\n if (required) {\n inputSchema.required ??= [];\n inputSchema.required.push(name);\n }\n }\n }\n\n log('inputSchema', { inputSchema });\n Schema.validateSync(Type.JsonSchema)(inputSchema);\n\n const description = methodItem.description ?? methodItem.summary;\n if (!description) {\n log.warn('no description', { path, method });\n continue;\n }\n\n const endpoint: EndpointDescriptor = {\n document: spec,\n path,\n method,\n parameters: endpointParameters,\n authorization: options?.authorization,\n };\n\n tools.push(\n // TODO(burdon): Namespace?\n createRawTool('openapi', {\n name: getToolName(path, method, methodItem),\n description: options?.instructions ? `${options.instructions}\\n\\n${description}` : description,\n parameters: inputSchema,\n execute: async (input) => {\n const response = await callApiEndpoint(endpoint, input);\n return ToolResult.Success(response);\n },\n }),\n );\n }\n }\n\n return tools;\n};\n\nconst getToolName = (path: string, method: string, methodItem: OpenAPIV2.OperationObject) => {\n if (methodItem.operationId) {\n return methodItem.operationId;\n }\n\n // Generate a name from the path and method.\n let name = `${method.toLowerCase()}_${path.replaceAll(/[{}/]/g, '_')}`;\n while (name.length > MAX_TOOL_NAME_LENGTH) {\n const lengthBefore = name.length;\n\n for (const word of GENERIC_WORDS) {\n if (name.includes(word)) {\n name = name.replace(word, '');\n break;\n }\n }\n name = name.replaceAll('__', '_').replace(/_$/, '');\n\n const lengthAfter = name.length;\n if (lengthBefore === lengthAfter) {\n break;\n }\n }\n name = name.replaceAll('__', '_').replace(/_$/, '').replace(/^_/, '');\n\n return name.slice(0, MAX_TOOL_NAME_LENGTH);\n};\n\nconst MAX_TOOL_NAME_LENGTH = 64;\nconst GENERIC_WORDS = [\n 'services',\n 'service',\n 'api',\n 'rest',\n 'endpoint',\n 'get',\n 'post',\n 'put',\n 'delete',\n 'patch',\n 'head',\n 'options',\n 'trace',\n 'service',\n 'api',\n 'endpoint',\n];\n\ntype EndpointDescriptor = {\n document: OpenAPIV3_1.Document | OpenAPIV2.Document;\n path: string;\n method: string;\n parameters: OpenAPIV2.ParameterObject[];\n authorization?: ApiAuthorization;\n};\n\nconst callApiEndpoint = async (endpoint: EndpointDescriptor, input: any) => {\n log.info('endpoint', { method: endpoint.method, name: endpoint.path, input });\n\n let url = getEndpointUrl(endpoint);\n const request: RequestInit = {\n method: endpoint.method,\n headers: {},\n };\n const query = new URLSearchParams();\n let body: any;\n for (const parameter of endpoint.parameters) {\n if (input[parameter.name] === undefined) {\n continue;\n }\n\n switch (parameter.in) {\n case 'header': {\n if (parameter.example) {\n (request.headers as any)[parameter.name] = parameter.default;\n }\n break;\n }\n case 'path': {\n url = url.replace(`{${parameter.name}}`, encodeURIComponent(input[parameter.name]));\n break;\n }\n case 'body': {\n const value = input[parameter.name];\n\n // Client-side validation\n const effectSchema = Type.toEffectSchema(parameter.schema);\n Schema.validateSync(effectSchema)(value);\n\n if (body) {\n throw new Error(`Duplicate body parameter: ${parameter.name}`);\n }\n body = value;\n break;\n }\n case 'query': {\n query.set(parameter.name, input[parameter.name]);\n break;\n }\n }\n }\n\n if (\n (endpoint.authorization?.type === 'api-key' && endpoint.authorization.placement.type === 'authorization-header') ||\n endpoint.authorization?.type === 'oauth'\n ) {\n (request.headers as any).Authorization = await resolveAuthorization(endpoint.authorization);\n } else if (endpoint.authorization?.type === 'api-key' && endpoint.authorization.placement.type === 'query') {\n query.set(endpoint.authorization.placement.name, endpoint.authorization.key);\n }\n\n if (query.size > 0) {\n url += `?${query.toString()}`;\n }\n\n if (body) {\n request.body = JSON.stringify(body);\n (request.headers as any)['Content-Type'] = 'application/json';\n }\n\n log.info('request', { url, request });\n const response = await fetch(url, request);\n\n log.info('response', { ok: response.ok, status: response.status, statusText: response.statusText });\n\n if (response.ok) {\n const contentType = response.headers.get('Content-Type');\n if (contentType?.includes('application/json')) {\n return await response.json();\n } else {\n return await response.text();\n }\n } else {\n if (response.headers.get('Content-Type')?.includes('application/json')) {\n const responseBody = await response.text();\n let error: any;\n try {\n error = JSON.parse(responseBody);\n } catch {\n error = responseBody;\n }\n log.error('error', { error });\n throw new Error(error.message);\n } else {\n const error = await response.text();\n log.error('error', { error });\n throw new Error(error);\n }\n }\n};\n\nconst getEndpointUrl = (endpoint: EndpointDescriptor) => {\n let url = '';\n if (isV3_1(endpoint.document) && endpoint.document.servers && endpoint.document.servers.length > 0) {\n url = endpoint.document.servers[0].url;\n } else {\n invariant(!isV3_1(endpoint.document));\n url = `${endpoint.document.schemes?.[0] ?? 'https'}://${endpoint.document.host}`;\n }\n\n if (!isV3_1(endpoint.document) && endpoint.document.basePath) {\n url += endpoint.document.basePath;\n }\n\n url += endpoint.path;\n\n return url;\n};\n\nexport const resolveAuthorization = async (authorization: ApiAuthorization): Promise<string> => {\n switch (authorization.type) {\n case 'api-key': {\n invariant(authorization.placement.type === 'authorization-header');\n return `Bearer ${authorization.key}`;\n }\n case 'oauth': {\n const response = await fetch(authorization.tokenUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: `grant_type=${authorization.grantType}&client_id=${authorization.clientId}&client_secret=${authorization.clientSecret}`,\n });\n const data = await response.json();\n return `Bearer ${data.access_token}`;\n }\n default: {\n throw new Error(`Unknown authorization type: ${(authorization as any).type}`);\n }\n }\n};\n\n/**\n * Resolves all $ref properties in a JSON schema.\n * Doesn't assume the structure of the schema.\n * The function looks from $ref properties in the schema and resolves them to their values in the base object.\n */\nconst resolveJsonSchema = (schema: any, base: any) => {\n return deepMapValues(schema, (value, recurse) => {\n if (typeof value === 'object' && value !== null && '$ref' in value && typeof value.$ref === 'string') {\n if (value.$ref.startsWith('#')) {\n const resolved = jsonpointer.get(base, value.$ref.slice(1));\n if (resolved) {\n return recurse(resolved);\n } else {\n log.warn('unresolved', { ref: value.$ref, base });\n }\n }\n }\n return recurse(value);\n });\n};\n\nconst isV3_1 = (document: OpenAPIV3_1.Document | OpenAPIV2.Document): document is OpenAPIV3_1.Document => {\n return (document as any).openapi === '3.0.1';\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension, Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { Result, useRxValue } from '@effect-rx/rx-react';\nimport { createContext } from '@radix-ui/react-context';\nimport { Array, Option } from 'effect';\nimport React, { type PropsWithChildren, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Event } from '@dxos/async';\nimport { DXN, Obj, Ref } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { useVoiceInput } from '@dxos/plugin-transcription';\nimport { type Space, getSpace, useQueue } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Input, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { ChatEditor, type ChatEditorController, type ChatEditorProps, references } from '@dxos/react-ui-chat';\nimport { type ScrollController } from '@dxos/react-ui-components';\nimport { mx } from '@dxos/react-ui-theme';\nimport { DataType } from '@dxos/schema';\nimport { isNotFalsy } from '@dxos/util';\n\nimport { type AiChatProcessor, useBlueprintHandlers, useReferencesProvider } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type Assistant } from '../../types';\nimport {\n ChatActions,\n type ChatActionsProps,\n ChatOptions,\n ChatPresets,\n type ChatPresetsProps,\n ChatReferences,\n type ChatReferencesProps,\n ChatStatusIndicator,\n} from '../ChatPrompt';\nimport { ChatThread as NativeChatThread, type ChatThreadProps as NativeChatThreadProps } from '../ChatThread';\n\nimport { type ChatEvent } from './events';\n\n// TODO(burdon): Factor out.\nconst Endcap = ({ children }: PropsWithChildren) => {\n return (\n <div className='grid w-[var(--rail-action)] h-[var(--rail-action)] items-center justify-center'>{children}</div>\n );\n};\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\n// TODO(burdon): Inject via effect layer.\ntype ChatContextValue = {\n debug?: boolean;\n event: Event<ChatEvent>;\n space: Space;\n chat: Assistant.Chat;\n messages: DataType.Message[];\n processor: AiChatProcessor;\n};\n\n// NOTE: Do not export.\nconst [ChatContextProvider, useChatContext] = createContext<ChatContextValue>('Chat');\n\n//\n// Root\n//\n\ntype ChatRootProps = ThemedClassName<\n PropsWithChildren<\n Pick<ChatContextValue, 'chat' | 'processor'> & {\n onEvent?: (event: ChatEvent) => void;\n }\n >\n>;\n\nconst ChatRoot = ({ classNames, children, chat, processor, onEvent, ...props }: ChatRootProps) => {\n const [debug, setDebug] = useState(false);\n const space = getSpace(chat);\n\n // Messages.\n const queue = useQueue<DataType.Message>(chat?.queue.dxn);\n const pending = useRxValue(processor.messages);\n const streaming = useRxValue(processor.streaming);\n\n const messages = useMemo(() => {\n const queueMessages = queue?.objects?.filter(Obj.instanceOf(DataType.Message)) ?? [];\n return Result.match(pending, {\n onInitial: () => queueMessages,\n onSuccess: (pending) => Array.dedupeWith([...queueMessages, ...pending.value], (a, b) => a.id === b.id),\n onFailure: () => queueMessages,\n });\n }, [queue?.objects, pending]);\n\n // TODO(burdon): Replace with tool to select artifact.\n // const { dispatchPromise: dispatch } = useIntentDispatcher();\n // useEffect(() => {\n // if (!processor?.streaming.value && queue?.objects) {\n // const message = queue.objects[queue.objects.length - 1];\n // if (dispatch && space && chat && message) {\n // void dispatch(\n // createIntent(CollaborationActions.InsertContent, {\n // target: artifact,\n // object: Ref.fromDXN(new DXN(DXN.kind.QUEUE, [...chat.queue.dxn.parts, message.id])),\n // label: 'View proposal',\n // }),\n // );\n // }\n // }\n // }, [queue, processor?.streaming.value]);\n\n // Events.\n const event = useMemo(() => new Event<ChatEvent>(), []);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'toggle-debug': {\n setDebug((current) => {\n const debug = !current;\n log.info('toggle-debug', { debug });\n // log.config({ filter: debug ? 'assistant:debug' : 'info' });\n return debug;\n });\n break;\n }\n\n case 'submit': {\n if (!streaming) {\n void processor.request(event.text);\n }\n break;\n }\n\n case 'cancel': {\n void processor.cancel();\n break;\n }\n\n default: {\n onEvent?.(event);\n }\n }\n });\n }, [event, onEvent, processor, streaming]);\n\n if (!space) {\n return null;\n }\n\n return (\n <ChatContextProvider\n debug={debug}\n event={event}\n chat={chat}\n space={space}\n processor={processor}\n messages={messages}\n {...props}\n >\n <div role='none' className={mx('flex flex-col h-full overflow-hidden', classNames)}>\n {children}\n </div>\n </ChatContextProvider>\n );\n};\n\nChatRoot.displayName = 'Chat.Root';\n\n//\n// Thread\n//\n\ntype ChatThreadProps = Omit<NativeChatThreadProps, 'identity' | 'space' | 'messages' | 'tools' | 'onEvent'>;\n\nconst ChatThread = (props: ChatThreadProps) => {\n const { debug, event, space, messages } = useChatContext(ChatThread.displayName);\n const identity = useIdentity();\n\n const scrollerRef = useRef<ScrollController>(null);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'submit':\n case 'scroll-to-bottom':\n scrollerRef.current?.scrollToBottom('smooth');\n break;\n }\n });\n }, [event]);\n\n if (!identity) {\n return null;\n }\n\n return (\n <NativeChatThread\n {...props}\n ref={scrollerRef}\n debug={debug}\n identity={identity}\n space={space}\n messages={messages}\n onEvent={(ev) => event.emit(ev)}\n />\n );\n};\n\nChatThread.displayName = 'Chat.Thread';\n\n//\n// Prompt\n//\n\ntype ChatPromptProps = ThemedClassName<\n Pick<ChatEditorProps, 'placeholder'> &\n Omit<ChatPresetsProps, 'onChange'> & {\n expandable?: boolean;\n online?: boolean;\n onChangeOnline?: (online: boolean) => void;\n onChangePreset?: ChatPresetsProps['onChange'];\n }\n>;\n\nconst ChatPrompt = ({\n classNames,\n placeholder,\n expandable,\n online,\n presets,\n preset,\n onChangePreset,\n onChangeOnline,\n}: ChatPromptProps) => {\n const { t } = useTranslation(meta.id);\n const { space, event, processor } = useChatContext(ChatPrompt.displayName);\n const streaming = useRxValue(processor.streaming);\n const error = useRxValue(processor.error).pipe(Option.getOrUndefined);\n\n const [active, setActive] = useState(false);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'record-start':\n setActive(true);\n break;\n case 'record-stop':\n setActive(false);\n break;\n }\n });\n }, [event]);\n\n const editorRef = useRef<ChatEditorController>(null);\n\n // TODO(burdon): Configure capability in TranscriptionPlugin.\n const { recording } = useVoiceInput({\n active,\n onUpdate: (text) => {\n editorRef.current?.setText(text);\n editorRef.current?.focus();\n },\n });\n\n // TODO(burdon): Reconcile with object tags.\n const referencesProvider = useReferencesProvider(space);\n const extensions = useMemo<Extension[]>(() => {\n return [\n referencesProvider && references({ provider: referencesProvider }),\n Prec.highest(\n keymap.of(\n [\n {\n key: 'cmd-d',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'toggle-debug' });\n return true;\n },\n },\n expandable && {\n key: 'cmd-ArrowUp',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'thread-open' });\n return true;\n },\n },\n expandable && {\n key: 'cmd-ArrowDown',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'thread-close' });\n return true;\n },\n },\n ].filter(isNotFalsy),\n ),\n ),\n ].filter(isNotFalsy);\n }, [event, expandable, referencesProvider]);\n\n const handleSubmit = useCallback<NonNullable<ChatEditorProps['onSubmit']>>(\n (text) => {\n if (!streaming) {\n event.emit({ type: 'submit', text });\n return true;\n }\n },\n [streaming, event],\n );\n\n const handleEvent = useCallback<NonNullable<ChatActionsProps['onEvent']>>(\n (ev) => {\n event.emit(ev);\n },\n [event],\n );\n\n const handleUpdateReferences = useCallback<NonNullable<ChatReferencesProps['onUpdate']>>((dxns) => {\n log.info('update', { dxns });\n void processor.context.bind({ objects: dxns.map((dxn) => Ref.fromDXN(DXN.parse(dxn))) });\n }, []);\n\n const { onUpdateBlueprint } = useBlueprintHandlers({\n space,\n context: processor.context,\n blueprintRegistry: processor.blueprintRegistry,\n });\n\n return (\n <div\n className={mx(\n 'is-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] grid-rows-[min-content_min-content_min-content]',\n classNames,\n )}\n >\n <Endcap>\n <ChatStatusIndicator preset={preset} error={error} processing={streaming} />\n </Endcap>\n\n <ChatEditor\n ref={editorRef}\n autoFocus\n lineWrapping\n classNames='col-span-2 pis-1 pbs-2'\n placeholder={placeholder ?? t('prompt placeholder')}\n extensions={extensions}\n onSubmit={handleSubmit}\n />\n\n <div />\n <ChatReferences\n classNames='col-span-2 flex pis-1 items-center'\n space={space}\n context={processor.context}\n onUpdate={handleUpdateReferences}\n />\n\n <ChatOptions\n blueprintRegistry={processor.blueprintRegistry}\n context={processor.context}\n onUpdateBlueprint={onUpdateBlueprint}\n />\n\n <ChatActions\n classNames='col-span-2'\n microphone={true}\n recording={recording}\n processing={streaming}\n onEvent={handleEvent}\n >\n <>\n <div className='grow' />\n {presets && <ChatPresets preset={preset} presets={presets} onChange={onChangePreset} />}\n {online !== undefined && (\n <Input.Root>\n <Input.Switch classNames='mis-2 mie-2' checked={online} onCheckedChange={onChangeOnline} />\n </Input.Root>\n )}\n </>\n </ChatActions>\n </div>\n );\n};\n\nChatPrompt.displayName = 'Chat.Prompt';\n\n//\n// Chat\n//\n\nexport const Chat = {\n Root: ChatRoot,\n Thread: ChatThread,\n Prompt: ChatPrompt,\n};\n\nexport type { ChatRootProps, ChatThreadProps, ChatPromptProps, ChatEvent };\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/react-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 {(processing && (\n <IconButton\n disabled={!processing}\n classNames='px-1.5'\n variant='ghost'\n size={5}\n icon='ph--x--regular'\n iconOnly\n label={t('button cancel processing')}\n onClick={() => onEvent?.({ type: 'cancel' })}\n />\n )) || (\n <IconButton\n disabled\n classNames='px-1.5'\n variant='ghost'\n size={5}\n icon='ph--arrow-down--regular'\n iconOnly\n label={t('button scroll down')}\n onClick={() => onEvent?.({ type: 'scroll-to-bottom' })}\n />\n )}\n\n {microphone && (\n <IconButton\n disabled={!processing}\n classNames={mx('px-1.5', recording && 'bg-primary-500')}\n variant='ghost'\n size={5}\n icon='ph--microphone--regular'\n iconOnly\n noTooltip\n label={t('button microphone')}\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, { useMemo } from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { DropdownMenu, Icon, IconButton, useTranslation } from '@dxos/react-ui';\n\nimport { useBlueprints } from '../../hooks';\nimport { meta } from '../../meta';\n\nexport type ChatOptionsProps = {\n context?: AiContextBinder;\n blueprintRegistry?: Blueprint.Registry;\n onUpdateBlueprint?: (key: string, isActive: boolean) => void;\n};\n\n/**\n * Manages the runtime context for the chat.\n */\n// TODO(burdon): Refactor this as a Dialog (and move the object selector here also).\nexport const ChatOptions = ({ context, blueprintRegistry, onUpdateBlueprint }: ChatOptionsProps) => {\n const { t } = useTranslation(meta.id);\n\n // TODO(burdon): Possibly constrain query as registry grows.\n const blueprints = useMemo(() => blueprintRegistry?.query() ?? [], [blueprintRegistry]);\n\n const activeBlueprints = useBlueprints({ context });\n\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton icon='ph--plus--regular' variant='ghost' size={5} iconOnly label={t('button add blueprint')} />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content side='left'>\n <DropdownMenu.Viewport>\n {blueprints.map((blueprint) => (\n <DropdownMenu.CheckboxItem\n key={blueprint.key}\n checked={activeBlueprints?.get(blueprint.key) !== undefined}\n onCheckedChange={(checked) => onUpdateBlueprint?.(blueprint.key, !!checked)}\n classNames='gap-2'\n >\n <div className='flex-1 min-is-0'>{blueprint.name}</div>\n <DropdownMenu.ItemIndicator asChild>\n <Icon icon='ph--check--regular' size={4} />\n </DropdownMenu.ItemIndicator>\n </DropdownMenu.CheckboxItem>\n ))}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.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.Content>\n </Select.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type Space } from '@dxos/client/echo';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { type ThemedClassName, useAsyncState, useTranslation } from '@dxos/react-ui';\nimport { TagPicker, type TagPickerItemData, type TagPickerOptions } from '@dxos/react-ui-tag-picker';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport type ChatReferencesProps = ThemedClassName<{\n space: Space;\n context: AiContextBinder;\n onUpdate?: (dxns: string[]) => void;\n}>;\n\nexport const ChatReferences = ({ classNames, space, context, onUpdate }: ChatReferencesProps) => {\n const { t } = useTranslation(meta.id);\n\n const [items] = useAsyncState<TagPickerItemData[]>(async () => {\n const objects = await Ref.Array.loadAll(context.objects.value ?? []);\n return objects\n .filter(isNonNullable)\n .map((obj) => ({ id: Obj.getDXN(obj).toString(), label: Obj.getLabel(obj) ?? Obj.getTypename(obj) ?? obj.id }));\n }, [context]);\n\n const handleSearch = useCallback<NonNullable<TagPickerOptions['onSearch']>>(\n (text, dxns) => {\n // TODO(burdon): Filter by Item tag (e.g., exclude \"contacts\") and Query by object label.\n // TODO(burdon): Change to Filter.text().\n const objects = space.db.query(Filter.everything()).runSync();\n return objects\n .map(({ object }) => ({ id: Obj.getDXN(object).toString(), label: Obj.getLabel(object) ?? '' }))\n .filter(({ id, label }) => !dxns.includes(id) && label.toLocaleLowerCase().includes(text.toLocaleLowerCase()));\n },\n [space],\n );\n\n return (\n <TagPicker\n classNames={mx('h-[1.75rem] text-sm', classNames)}\n mode='multi-select'\n placeholder={t('context objects placeholder')}\n items={items}\n onSearch={handleSearch}\n onUpdate={onUpdate}\n />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Icon, Tooltip, useTimeout } from '@dxos/react-ui';\nimport { Spinner } from '@dxos/react-ui-sfx';\nimport { errorText } from '@dxos/react-ui-theme';\n\nexport type ChatStatusIndicatorProps = {\n preset?: string;\n error?: Error;\n processing?: boolean;\n};\n\nexport const ChatStatusIndicator = ({ preset, error, processing }: ChatStatusIndicatorProps) => {\n const [init, setInit] = useState(false);\n useEffect(() => {\n setInit(false);\n }, [preset]);\n useTimeout(\n async () => {\n setInit(true);\n },\n 1_500,\n [preset],\n );\n\n if (error) {\n return (\n <Tooltip.Trigger content={error.message} delayDuration={0}>\n <Icon icon='ph--warning-circle--regular' classNames={errorText} size={5} />\n </Tooltip.Trigger>\n );\n }\n\n return <Spinner state={!init ? 'flash' : processing ? 'spin' : 'pulse'} />;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type CSSProperties, forwardRef, useMemo } from 'react';\n\nimport { PublicKey } from '@dxos/keys';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { ScrollContainer, type ScrollController } from '@dxos/react-ui-components';\nimport { mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\nimport { keyToFallback } from '@dxos/util';\n\nimport { ChatMessage, type ChatMessageProps } from './ChatMessage';\nimport { messageReducer } from './reducer';\n\nexport type ChatThreadProps = ThemedClassName<\n {\n identity?: Identity;\n messages?: DataType.Message[];\n collapse?: boolean;\n } & Pick<ChatMessageProps, 'debug' | 'space' | 'tools' | 'onEvent'>\n>;\n\nexport const ChatThread = forwardRef<ScrollController, ChatThreadProps>(\n ({ classNames, identity, messages, collapse = true, ...props }, forwardedRef) => {\n const userHue = useMemo(() => {\n return identity?.profile?.data?.hue || keyToFallback(identity?.identityKey ?? PublicKey.random()).hue;\n }, [identity]);\n\n // TODO(dmaretskyi): This needs to be a separate type: `id` is not a valid ObjectId, this needs to accommodate messageId for deletion.\n const { messages: filteredMessages = [] } = useMemo(() => {\n if (collapse) {\n return (messages ?? []).reduce<{ messages: DataType.Message[]; current?: DataType.Message }>(messageReducer, {\n messages: [],\n });\n } else {\n return { messages: messages ?? [] };\n }\n }, [messages, collapse]);\n\n return (\n <ScrollContainer ref={forwardedRef} classNames={classNames} fade>\n <div\n role='none'\n className={mx('flex flex-col gap-2', filteredMessages.length > 0 && 'pbs-4 pbe-4')}\n style={{ '--user-fill': `var(--dx-${userHue}Fill)` } as CSSProperties}\n >\n {filteredMessages.map((message) => (\n <ChatMessage key={message.id} message={message} {...props} />\n ))}\n </div>\n </ScrollContainer>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, Fragment, type PropsWithChildren, useMemo } from 'react';\n\nimport { type Tool } from '@dxos/ai';\nimport { ErrorBoundary, Surface } from '@dxos/app-framework';\nimport { resolveRef } from '@dxos/client';\nimport { Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, DXN_ECHO_REGEXP } from '@dxos/keys';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Button, IconButton, Link, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport {\n MarkdownViewer,\n ToggleContainer as NativeToggleContainer,\n type ToggleContainerProps,\n} from '@dxos/react-ui-components';\nimport { mx } from '@dxos/react-ui-theme';\nimport { type ContentBlock, type DataType } from '@dxos/schema';\nimport { safeParseJson } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { type ChatEvent } from '../Chat';\nimport { Toolbox } from '../Toolbox';\n\nimport { ObjectLink } from './Link';\nimport { Json, ToolBlock, isToolMessage } from './ToolBlock';\n\nconst panelClasses = 'flex flex-col is-full bg-activeSurface rounded-sm';\nconst marginClasses = 'pie-4 pis-4';\nconst paddingClasses = 'pis-2 pie-2 pbs-0.5 pbe-0.5';\n\nexport type ChatMessageProps = ThemedClassName<{\n debug?: boolean;\n space?: Space;\n message: DataType.Message;\n tools?: Tool[];\n onEvent?: (event: ChatEvent) => void;\n onDelete?: () => void;\n}>;\n\nexport const ChatMessage = ({ classNames, debug, space, message, tools, onEvent, onDelete }: ChatMessageProps) => {\n const { t } = useTranslation(meta.id);\n const {\n sender: { role },\n blocks,\n } = message;\n\n // TODO(burdon): Consolidate tools upstream?\n if (isToolMessage(message)) {\n return (\n <MessageItem classNames={mx(classNames, 'animate-[fadeIn_0.5s]')}>\n <ToolBlock classNames={panelClasses} message={message} tools={tools} />\n </MessageItem>\n );\n }\n\n return (\n <>\n {debug && (\n <div className={mx('flex justify-end text-subdued', marginClasses)}>\n <pre className='text-xs'>{JSON.stringify({ created: message.created })}</pre>\n </div>\n )}\n\n {blocks.map((block, idx) => {\n // TODO(burdon): Filter empty messages.\n if (block._tag === 'text' && block.text.replaceAll(/\\s+/g, '').length === 0) {\n return null;\n }\n\n const Component: ContentBlockComponent = components[block._tag] ?? components.default!;\n if (!Component) {\n return null;\n }\n\n return (\n <Fragment key={idx}>\n <MessageItem classNames={classNames} user={block._tag === 'text' && role === 'user'}>\n <ErrorBoundary data={block}>\n <Component space={space} block={block} onEvent={onEvent} />\n </ErrorBoundary>\n </MessageItem>\n {debug && (\n <div className={mx('flex justify-end text-subdued', marginClasses)}>\n <pre className='text-xs'>{JSON.stringify({ block: block._tag })}</pre>\n </div>\n )}\n </Fragment>\n );\n })}\n\n {onDelete && (\n <div className={mx('flex justify-end pbs-2 pbe-2 opacity-50 hover:opacity-100', marginClasses)}>\n <IconButton\n classNames='animate-[fadeIn_0.5s]'\n icon='ph--trash--regular'\n iconOnly\n label={t('button delete message')}\n onClick={() => onDelete()}\n />\n </div>\n )}\n </>\n );\n};\n\ntype ContentBlockProps = {\n space?: Space;\n block: ContentBlock.Any;\n onEvent?: (event: ChatEvent) => void;\n};\n\ntype ContentBlockComponent = FC<ContentBlockProps>;\n\n/**\n * Components for rendering content blocks.\n */\nconst components: Partial<Record<ContentBlock.Any['_tag'] | 'default', ContentBlockComponent>> = {\n //\n // Text\n //\n ['text' as const]: ({ space, block }) => {\n invariant(block._tag === 'text');\n return (\n <MarkdownViewer\n content={preprocessTextContent(block.text)}\n components={{\n a: ({ node: { properties }, children, href, ...props }) => {\n if (space && typeof properties?.href === 'string' && properties?.href?.startsWith('dxn')) {\n try {\n // TODO(burdon): Check valid length (since serialized).\n const dxn = DXN.parse(properties.href);\n return <ObjectLink space={space} dxn={dxn} />;\n } catch {}\n }\n\n // TODO(burdon): Can we revert to the default handler?\n return (\n <Link href={href} target='_blank' rel='noopener noreferrer' {...props}>\n {children}\n </Link>\n );\n },\n img: ({ node: { properties }, ...props }) => {\n const client = useClient();\n if (space && typeof properties?.src === 'string' && properties?.src?.startsWith('dxn')) {\n try {\n const dxn = DXN.parse(properties?.src);\n const subject = resolveRef(client, dxn, space);\n const data = useMemo(() => ({ subject }), [subject]);\n return <Surface role='card--transclusion' data={data} limit={1} />;\n } catch {}\n }\n return <img {...properties} />;\n },\n }}\n />\n );\n },\n\n //\n // Suggest\n //\n ['suggest' as const]: ({ block, onEvent }) => {\n const { t } = useTranslation(meta.id);\n invariant(block._tag === 'suggest');\n return (\n <IconButton\n icon='ph--lightning--regular'\n label={block.text}\n title={t('button suggest')}\n onClick={() => onEvent?.({ type: 'submit', text: block.text })}\n />\n );\n },\n\n //\n // Select\n //\n ['select' as const]: ({ block, onEvent }) => {\n const { t } = useTranslation(meta.id);\n invariant(block._tag === 'select');\n return (\n <div className='flex flex-wrap gap-1'>\n {block.options.map((option, idx) => (\n <Button\n classNames={'animate-[fadeIn_0.5s] rounded-sm text-sm'}\n key={idx}\n onClick={() => onEvent?.({ type: 'submit', text: option })}\n title={t('button select option')}\n >\n {option}\n </Button>\n ))}\n </div>\n );\n },\n\n //\n // Toolkit\n //\n ['toolkit' as const]: ({ block }) => {\n invariant(block._tag === 'toolkit');\n return (\n <ToggleContainer title='Toolbox' classNames={panelClasses} defaultOpen>\n <Toolbox classNames={marginClasses} />\n </ToggleContainer>\n );\n },\n\n //\n // JSON\n //\n ['json' as const]: ({ block, onEvent }) => {\n invariant(block._tag === 'json');\n\n // TODO(burdon): Disposition is deprecated.\n switch (block.disposition) {\n case 'graph': {\n return (\n <div className='flex flex-wrap gap-1'>\n <Surface\n role='card'\n data={{ subject: JSON.parse(block.data ?? '{}') }}\n limit={1}\n fallback={<div className='font-mono text-xs text-pre'>{block.data}</div>}\n />\n {onEvent && (\n <IconButton\n icon='ph--plus--regular'\n label='Add to graph'\n onClick={() => onEvent?.({ type: 'add', object: JSON.parse(block.data ?? '{}') })}\n />\n )}\n </div>\n );\n }\n\n default: {\n return (\n <ToggleContainer title={block.disposition ?? block._tag}>\n <Json data={safeParseJson(block.data ?? block)} />\n </ToggleContainer>\n );\n }\n }\n },\n\n //\n // Fallback\n //\n default: ({ block }) => {\n return (\n <ToggleContainer title={block._tag}>\n <Json data={block} />\n </ToggleContainer>\n );\n },\n};\n\n/**\n * Wrapper for each message.\n */\nconst MessageItem = ({ classNames, children, user }: ThemedClassName<PropsWithChildren<{ user?: boolean }>>) => {\n if (!children) {\n return null;\n }\n\n return (\n <div role='list-item' className={mx('flex is-full', user && 'justify-end', marginClasses, classNames)}>\n <div className={mx(user ? ['rounded-sm', 'bg-[--user-fill] text-accentSurfaceText', paddingClasses] : 'is-full')}>\n {children}\n </div>\n </div>\n );\n};\n\nconst ToggleContainer = (props: ToggleContainerProps) => {\n return <NativeToggleContainer {...props} classNames={mx(panelClasses, props.classNames)} />;\n};\n\nexport const renderObjectLink = (obj: Obj.Any, transclusion?: boolean) =>\n `${transclusion ? '!' : ''}[${Obj.getLabel(obj)}](${Obj.getDXN(obj).toString()})`;\n\n// TODO(burdon): Move to parser.\nconst preprocessTextContent = (content: string) =>\n content.replaceAll(new RegExp(DXN_ECHO_REGEXP, 'g'), (_, dxn) => `<${dxn}>`);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Space } from '@dxos/client/echo';\nimport { Obj, Ref } from '@dxos/echo';\nimport { type DXN } from '@dxos/keys';\nimport { DxRefTag } from '@dxos/lit-ui/react';\n\nimport { useResolvedRef } from '../../hooks';\n\nexport type ObjectLinkProps = {\n space: Space;\n dxn: DXN;\n};\n\nexport const ObjectLink = ({ space, dxn }: ObjectLinkProps) => {\n const object = useResolvedRef(space, Ref.fromDXN(dxn));\n const title = Obj.getLabel(object) ?? object?.id ?? dxn.toString();\n return <DxRefTag refid={dxn.toString()}>{title}</DxRefTag>;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { type AgentStatus, type Tool } from '@dxos/ai';\nimport { type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { NumericTabs, StatusRoll, ToggleContainer } from '@dxos/react-ui-components';\nimport { type JsonProps, Json as NativeJson } from '@dxos/react-ui-syntax-highlighter';\nimport { type DataType } from '@dxos/schema';\nimport { isNonNullable, isNotFalsy } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport const isToolMessage = (message: DataType.Message) => {\n return message.blocks.some((block) => block._tag === 'toolCall' || block._tag === 'toolResult');\n};\n\nconst getToolName = (tool: Tool) => {\n return tool.namespace && tool.function ? `${tool.namespace}:${tool.function}` : tool.name.split('_').pop();\n};\n\nexport type ToolBlockProps = ThemedClassName<{\n message: DataType.Message;\n tools?: Tool[];\n}>;\n\nexport const ToolBlock: FC<ToolBlockProps> = ({ classNames, message, tools }) => {\n const { t } = useTranslation(meta.id);\n const { blocks = [] } = message;\n\n const getToolCaption = (tool?: Tool, status?: AgentStatus) => {\n if (!tool) {\n return t('calling tool label');\n }\n\n return status?.message ?? tool.caption ?? [t('calling label') + getToolName(tool)].join(' ');\n };\n\n let request: { tool: Tool | undefined; block: any } | undefined;\n const toolBlocks = blocks.filter((block) => block._tag === 'toolCall' || block._tag === 'toolResult');\n const items = toolBlocks\n .map((block) => {\n switch (block._tag) {\n case 'toolCall': {\n // TODO(burdon): Skip these updates?\n if (block.pending && request?.block.toolCallId === block.toolCallId) {\n return null;\n }\n\n request = { tool: tools?.find((tool) => tool.name === block.name), block };\n return {\n title: getToolCaption(request.tool, request.block.status),\n block,\n };\n }\n\n case 'toolResult': {\n if (!request || block.error) {\n return {\n title: t('error label'),\n block,\n };\n }\n\n return {\n title: getToolCaption(request.tool, request.block.status),\n block,\n };\n }\n\n default: {\n request = undefined;\n return {\n title: t('error label'),\n block,\n };\n }\n }\n })\n .filter(isNonNullable);\n\n return <ToolContainer classNames={classNames} items={items} />;\n};\n\nexport const ToolContainer: FC<ThemedClassName<{ items: { title: string; block: any }[] }>> = ({\n classNames,\n items,\n}) => {\n const tabsRef = useRef<HTMLDivElement>(null);\n const [selected, setSelected] = useState(0);\n const [open, setOpen] = useState(false);\n useEffect(() => {\n if (open) {\n tabsRef.current?.focus();\n }\n }, [open]);\n\n const handleSelect = (index: number) => {\n if (index === selected) {\n setOpen(false);\n } else {\n setSelected(index);\n }\n };\n\n const title = useMemo(() => {\n const lines = items.map((item) => item.title).filter(isNotFalsy);\n return <StatusRoll key='status-roll' lines={lines} duration={1_000} autoAdvance />;\n }, [items]);\n\n return (\n <ToggleContainer classNames={['flex flex-col', classNames]} title={title} open={open} onChangeOpen={setOpen}>\n <div className='w-full grid grid-cols-[32px_1fr]'>\n <NumericTabs ref={tabsRef} length={items.length} selected={selected} onSelect={handleSelect} />\n <Json data={items[selected].block} />\n </div>\n </ToggleContainer>\n );\n};\n\nexport const Json = ({ data }: Pick<JsonProps, 'data'>) => (\n <NativeJson data={data} classNames='!p-1 text-xs bg-transparent' />\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type DataType } from '@dxos/schema';\n\n// TODO(burdon): Move to util?\ntype Reducer<R, I> = (acc: R, value: I) => R;\n\n/**\n * Reducer that collapses related message blocks into single messages.\n * For example, combines tool request/response pairs into a single message.\n */\nexport const messageReducer: Reducer<{ messages: DataType.Message[]; current?: DataType.Message }, DataType.Message> = (\n { current, messages },\n message,\n) => {\n let i = 0;\n for (const block of message.blocks) {\n switch (block._tag) {\n case 'toolCall':\n case 'toolResult': {\n if (current) {\n current.blocks.push(block);\n } else {\n current = {\n ...message,\n id: [message.id, i].join('_'),\n blocks: [block],\n };\n messages.push(current);\n }\n break;\n }\n\n case 'text':\n default: {\n current = undefined;\n messages.push({\n ...message,\n id: [message.id, i].join('_'),\n blocks: [block],\n });\n break;\n }\n }\n\n i++;\n }\n\n return { current, messages };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useSignalEffect", "useCallback", "useMemo", "useState", "Capabilities", "useCapabilities", "Blueprint", "Filter", "Obj", "Ref", "isNonNullable", "useBlueprintRegistry", "blueprints", "useCapabilities", "Capabilities", "BlueprintDefinition", "useMemo", "Blueprint", "Registry", "useBlueprints", "context", "active", "setActive", "useState", "Map", "useSignalEffect", "refs", "value", "t", "setTimeout", "Ref", "Array", "loadAll", "filter", "isNonNullable", "map", "blueprint", "key", "clearTimeout", "useBlueprintHandlers", "space", "blueprintRegistry", "onUpdateBlueprint", "useCallback", "checked", "objects", "db", "query", "Filter", "type", "run", "storedBlueprint", "find", "getByKey", "add", "Obj", "clone", "bind", "make", "unbind", "RegistryContext", "useContext", "useMemo", "useIntentDispatcher", "AiConversation", "log", "fullyQualifiedId", "Registry", "Result", "Rx", "Effect", "Option", "Stream", "pipe", "AiService", "DEFAULT_EDGE_MODEL", "AiSession", "ArtifactDiffResolver", "createSystemPrompt", "Context", "Obj", "runAndForwardErrors", "log", "Filter", "getVersion", "DataType", "AiServiceOverloadedError", "Error", "code", "defaultOptions", "model", "DEFAULT_EDGE_MODEL", "AiChatProcessor", "error", "_observableRegistry", "_session", "_streaming", "streaming", "_pending", "messages", "_services", "_conversation", "_options", "Rx", "make", "Option", "none", "get", "pipe", "map", "session", "Stream", "fromQueue", "blockQueue", "getOrElse", "scan", "acc", "blockOption", "flatMap", "block", "match", "onNone", "onSome", "message", "blocks", "filter", "b", "pending", "some", "Obj", "DataType", "Message", "created", "Date", "toISOString", "sender", "role", "Result", "isSome", "value", "messageQueue", "onInitial", "onSuccess", "onFailure", "_artifactDiffResolver", "resolve", "artifacts", "space", "extensions", "Map", "versions", "Promise", "all", "artifact", "objects", "object", "db", "query", "Filter", "ids", "id", "run", "set", "version", "getVersion", "diff", "JSON", "stringify", "observableRegistry", "Registry", "system", "capabilities", "modelRegistry", "getCapabilities", "createSystemPrompt", "context", "conversation", "blueprintRegistry", "request", "ctx", "Context", "default", "AiSession", "onDispose", "log", "info", "isDisposed", "disposed", "s", "runAndForwardErrors", "prompt", "Effect", "provide", "AiService", "provideService", "ArtifactDiffResolver", "tapErrorCause", "cause", "void", "err", "catch", "Error", "includes", "AiServiceOverloadedError", "cancel", "Schema", "ModelProviders", "ModelProvider", "Schema", "Literal", "createModelLabel", "model", "parts", "split", "length", "AiServicePresets", "provider", "map", "i", "id", "label", "AiToolkit", "Layer", "useMemo", "Capabilities", "useCapabilities", "makeToolExecutionServiceFromFunctions", "makeToolResolverFromFunctions", "ComputeEventLogger", "CredentialsService", "DatabaseService", "LocalFunctionExecutionService", "QueueService", "RemoteFunctionExecutionService", "TracingService", "lazy", "AiService", "lazy", "AppGraphBuilder", "BlueprintDefinition", "EdgeModelResolver", "IntentResolver", "ReactSurface", "Settings", "Toolkit", "useChatServices", "space", "chat", "serviceLayer", "useCapabilities", "AssistantCapabilities", "AiServiceLayer", "at", "Layer", "die", "functions", "Capabilities", "Functions", "toolkits", "Toolkit", "handlers", "ToolkitHandler", "useMemo", "allFunctions", "flat", "toolkit", "AiToolkit", "merge", "handlersLayer", "mergeAll", "empty", "makeToolResolverFromFunctions", "makeToolExecutionServiceFromFunctions", "CredentialsService", "layerFromDatabase", "ComputeEventLogger", "layerFromTracing", "pipe", "provideMerge", "DatabaseService", "layer", "db", "notAvailable", "QueueService", "queues", "traceQueue", "target", "TracingService", "layerQueue", "layerNoop", "LocalFunctionExecutionService", "RemoteFunctionExecutionService", "mockLayer", "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", "handleChangePreset", "useCallback", "find", "onChangePreset", "useMemo", "Capabilities", "useCapabilities", "Filter", "Obj", "useReferencesProvider", "space", "blueprints", "useCapabilities", "Capabilities", "BlueprintDefinition", "useMemo", "undefined", "getReferences", "query", "objects", "db", "Filter", "everything", "run", "filter", "object", "stringMatch", "Obj", "getLabel", "getDXN", "map", "uri", "toString", "label", "resolveReference", "ids", "first", "toLowerCase", "startsWith", "useMemo", "useSyncExternalStore", "useResolvedRef", "space", "ref", "subscribe", "getSnapshot", "useMemo", "resolver", "db", "graph", "createRefResolver", "currentCallback", "undefined", "cb", "resolveSync", "dxn", "toString", "useSyncExternalStore", "Obj", "useQueue", "AgentStatus", "Obj", "MESSAGE_PROPERTY_TOOL_CALL_ID", "DataType", "useChatProcessor", "space", "chat", "preset", "services", "blueprintRegistry", "settings", "observableRegistry", "useContext", "RegistryContext", "dispatchPromise", "dispatch", "useIntentDispatcher", "chatId", "useMemo", "fullyQualifiedId", "undefined", "extensions", "pivotId", "conversation", "queue", "target", "AiConversation", "processor", "log", "model", "AiChatProcessor", "Stable", "Object", "freeze", "array", "object", "React", "Fragment", "useEffect", "useState", "FunctionType", "log", "Filter", "useQuery", "useTranslation", "mx", "ToolResult", "createTool", "Type", "getInvocationUrl", "getUserFunctionUrlInMetadata", "log", "getMeta", "Schema", "jsonpointer", "ToolResult", "createRawTool", "Type", "normalizeSchema", "invariant", "log", "deepMapValues", "createToolsFromService", "service", "interfaces", "length", "kind", "iface", "schemaUrl", "createToolsFromApi", "authorization", "url", "options", "res", "fetch", "spec", "json", "tools", "path", "pathItem", "Object", "entries", "paths", "methods", "method", "m", "methodItem", "parametersResolved", "parameters", "map", "parameter", "resolved", "resolveJsonSchema", "inputSchema", "type", "properties", "endpointParameters", "placement", "in", "name", "push", "schema", "_in", "required", "validateSync", "JsonSchema", "description", "summary", "warn", "endpoint", "document", "getToolName", "instructions", "execute", "input", "response", "callApiEndpoint", "Success", "operationId", "toLowerCase", "replaceAll", "MAX_TOOL_NAME_LENGTH", "lengthBefore", "word", "GENERIC_WORDS", "includes", "replace", "lengthAfter", "slice", "info", "getEndpointUrl", "request", "headers", "query", "URLSearchParams", "body", "undefined", "example", "default", "encodeURIComponent", "value", "effectSchema", "toEffectSchema", "Error", "set", "Authorization", "resolveAuthorization", "key", "size", "toString", "JSON", "stringify", "ok", "status", "statusText", "contentType", "get", "text", "responseBody", "error", "parse", "message", "isV3_1", "servers", "schemes", "host", "basePath", "tokenUrl", "grantType", "clientId", "clientSecret", "data", "access_token", "base", "recurse", "$ref", "startsWith", "ref", "openapi", "Toolbox", "classNames", "functions", "services", "blueprints", "activeBlueprints", "t", "useTranslation", "meta", "id", "div", "className", "mx", "length", "Section", "title", "items", "map", "target", "name", "description", "subitems", "tools", "toolId", "safeToolId", "service", "serviceId", "striped", "stripeClassNames", "gridClassNames", "subGridClassNames", "h1", "i", "Fragment", "key", "ToolboxContainer", "space", "processor", "useQuery", "Filter", "type", "ServiceType", "serviceTools", "setServiceTools", "useState", "useEffect", "log", "queueMicrotask", "Promise", "all", "createToolsFromService", "FunctionType", "context", "value", "split", "pop", "Prec", "keymap", "Result", "useRxValue", "createContext", "Array", "Option", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "Event", "DXN", "Obj", "Ref", "log", "useVoiceInput", "getSpace", "useQueue", "useIdentity", "Input", "useTranslation", "ChatEditor", "references", "mx", "DataType", "isNotFalsy", "React", "IconButton", "useTranslation", "mx", "ChatActions", "classNames", "children", "microphone", "recording", "processing", "onEvent", "t", "useTranslation", "meta", "id", "React", "div", "className", "mx", "IconButton", "disabled", "variant", "size", "icon", "iconOnly", "label", "onClick", "type", "noTooltip", "onMouseDown", "onMouseUp", "onTouchStart", "onTouchEnd", "React", "useMemo", "DropdownMenu", "Icon", "IconButton", "useTranslation", "ChatOptions", "context", "blueprintRegistry", "onUpdateBlueprint", "t", "useTranslation", "meta", "id", "blueprints", "useMemo", "query", "activeBlueprints", "useBlueprints", "React", "DropdownMenu", "Root", "Trigger", "asChild", "IconButton", "icon", "variant", "size", "iconOnly", "label", "Portal", "Content", "side", "Viewport", "map", "blueprint", "CheckboxItem", "key", "checked", "get", "undefined", "onCheckedChange", "classNames", "div", "className", "name", "ItemIndicator", "Icon", "Arrow", "React", "Select", "ChatPresets", "presets", "preset", "onChange", "React", "Select", "Root", "value", "onValueChange", "TriggerButton", "classNames", "Content", "map", "id", "label", "Option", "key", "React", "useCallback", "Filter", "Obj", "Ref", "useAsyncState", "useTranslation", "TagPicker", "mx", "isNonNullable", "ChatReferences", "classNames", "space", "context", "onUpdate", "t", "useTranslation", "meta", "id", "items", "useAsyncState", "objects", "Ref", "Array", "loadAll", "value", "filter", "isNonNullable", "map", "obj", "Obj", "getDXN", "toString", "label", "getLabel", "getTypename", "handleSearch", "useCallback", "text", "dxns", "db", "query", "Filter", "everything", "runSync", "object", "includes", "toLocaleLowerCase", "React", "TagPicker", "mx", "mode", "placeholder", "onSearch", "React", "useEffect", "useState", "Icon", "Tooltip", "useTimeout", "Spinner", "errorText", "ChatStatusIndicator", "preset", "error", "processing", "init", "setInit", "useState", "useEffect", "useTimeout", "React", "Tooltip", "Trigger", "content", "message", "delayDuration", "Icon", "icon", "classNames", "errorText", "size", "Spinner", "state", "React", "forwardRef", "useMemo", "PublicKey", "ScrollContainer", "mx", "keyToFallback", "React", "Fragment", "useMemo", "ErrorBoundary", "Surface", "resolveRef", "Obj", "invariant", "DXN", "DXN_ECHO_REGEXP", "useClient", "Button", "IconButton", "Link", "useTranslation", "MarkdownViewer", "ToggleContainer", "NativeToggleContainer", "mx", "safeParseJson", "React", "Obj", "Ref", "DxRefTag", "ObjectLink", "space", "dxn", "object", "useResolvedRef", "Ref", "fromDXN", "title", "Obj", "getLabel", "id", "toString", "React", "DxRefTag", "refid", "React", "useEffect", "useMemo", "useRef", "useState", "useTranslation", "NumericTabs", "StatusRoll", "ToggleContainer", "Json", "NativeJson", "isNonNullable", "isNotFalsy", "isToolMessage", "message", "blocks", "some", "block", "_tag", "getToolName", "tool", "namespace", "function", "name", "split", "pop", "ToolBlock", "classNames", "tools", "t", "useTranslation", "meta", "id", "getToolCaption", "status", "caption", "join", "request", "toolBlocks", "filter", "items", "map", "pending", "toolCallId", "find", "title", "error", "undefined", "isNonNullable", "React", "ToolContainer", "tabsRef", "useRef", "selected", "setSelected", "useState", "open", "setOpen", "useEffect", "current", "focus", "handleSelect", "index", "useMemo", "lines", "item", "isNotFalsy", "StatusRoll", "key", "duration", "autoAdvance", "ToggleContainer", "onChangeOpen", "div", "className", "NumericTabs", "ref", "length", "onSelect", "Json", "data", "NativeJson", "panelClasses", "marginClasses", "paddingClasses", "ChatMessage", "classNames", "debug", "space", "message", "tools", "onEvent", "onDelete", "t", "useTranslation", "meta", "id", "sender", "role", "blocks", "isToolMessage", "React", "MessageItem", "mx", "ToolBlock", "div", "className", "pre", "JSON", "stringify", "created", "map", "block", "idx", "_tag", "text", "replaceAll", "length", "Component", "components", "default", "Fragment", "key", "user", "ErrorBoundary", "data", "IconButton", "icon", "iconOnly", "label", "onClick", "invariant", "MarkdownViewer", "content", "preprocessTextContent", "a", "node", "properties", "children", "href", "props", "startsWith", "dxn", "DXN", "parse", "ObjectLink", "Link", "target", "rel", "img", "client", "useClient", "src", "subject", "resolveRef", "useMemo", "Surface", "limit", "title", "type", "options", "option", "Button", "ToggleContainer", "defaultOpen", "Toolbox", "disposition", "fallback", "object", "Json", "safeParseJson", "NativeToggleContainer", "preprocessTextContent", "content", "replaceAll", "RegExp", "DXN_ECHO_REGEXP", "_", "dxn", "messageReducer", "current", "messages", "message", "i", "block", "blocks", "_tag", "push", "id", "join", "undefined", "ChatThread", "forwardRef", "classNames", "identity", "messages", "collapse", "props", "forwardedRef", "userHue", "useMemo", "profile", "data", "hue", "keyToFallback", "identityKey", "PublicKey", "random", "filteredMessages", "reduce", "messageReducer", "React", "ScrollContainer", "ref", "fade", "div", "role", "className", "mx", "length", "style", "map", "message", "ChatMessage", "key", "id", "Endcap", "children", "React", "div", "className", "ChatContextProvider", "useChatContext", "createContext", "ChatRoot", "classNames", "chat", "processor", "onEvent", "props", "debug", "setDebug", "useState", "space", "getSpace", "queue", "useQueue", "dxn", "pending", "useRxValue", "messages", "streaming", "useMemo", "queueMessages", "objects", "filter", "Obj", "instanceOf", "DataType", "Message", "Result", "match", "onInitial", "onSuccess", "Array", "dedupeWith", "value", "a", "b", "id", "onFailure", "event", "Event", "useEffect", "on", "type", "current", "log", "info", "request", "text", "cancel", "role", "mx", "displayName", "ChatThread", "identity", "useIdentity", "scrollerRef", "useRef", "scrollToBottom", "NativeChatThread", "ref", "ev", "emit", "ChatPrompt", "placeholder", "expandable", "online", "presets", "preset", "onChangePreset", "onChangeOnline", "t", "useTranslation", "meta", "error", "pipe", "Option", "getOrUndefined", "active", "setActive", "editorRef", "recording", "useVoiceInput", "onUpdate", "setText", "focus", "referencesProvider", "useReferencesProvider", "extensions", "references", "provider", "Prec", "highest", "keymap", "of", "key", "preventDefault", "run", "isNotFalsy", "handleSubmit", "useCallback", "handleEvent", "handleUpdateReferences", "dxns", "context", "bind", "map", "Ref", "fromDXN", "DXN", "parse", "onUpdateBlueprint", "useBlueprintHandlers", "blueprintRegistry", "ChatStatusIndicator", "processing", "ChatEditor", "autoFocus", "lineWrapping", "onSubmit", "ChatReferences", "ChatOptions", "ChatActions", "microphone", "ChatPresets", "onChange", "undefined", "Input", "Root", "Switch", "checked", "onCheckedChange", "Chat", "Thread", "Prompt"]
|
|
7
|
-
}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-LKP65RPA.mjs";
|
|
4
|
-
import {
|
|
5
|
-
__export
|
|
6
|
-
} from "./chunk-J5LGTIGS.mjs";
|
|
7
|
-
|
|
8
|
-
// src/types/Assistant.ts
|
|
9
|
-
var Assistant_exports = {};
|
|
10
|
-
__export(Assistant_exports, {
|
|
11
|
-
Chat: () => Chat,
|
|
12
|
-
CompanionTo: () => CompanionTo,
|
|
13
|
-
Settings: () => Settings
|
|
14
|
-
});
|
|
15
|
-
import { Schema } from "effect";
|
|
16
|
-
import { Queue } from "@dxos/client/echo";
|
|
17
|
-
import { Type } from "@dxos/echo";
|
|
18
|
-
import { LabelAnnotation } from "@dxos/echo-schema";
|
|
19
|
-
|
|
20
|
-
// src/types/defs.ts
|
|
21
|
-
var LLM_PROVIDERS = [
|
|
22
|
-
"edge",
|
|
23
|
-
"ollama",
|
|
24
|
-
"lmstudio"
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
// src/types/Assistant.ts
|
|
28
|
-
var Chat = Schema.Struct({
|
|
29
|
-
id: Type.ObjectId,
|
|
30
|
-
name: Schema.optional(Schema.String),
|
|
31
|
-
queue: Type.Ref(Queue),
|
|
32
|
-
// TODO(dmaretskyi): Eventually this and the message queue will be the same.
|
|
33
|
-
traceQueue: Schema.optional(Type.Ref(Queue))
|
|
34
|
-
}).pipe(Type.Obj({
|
|
35
|
-
typename: "dxos.org/type/assistant/Chat",
|
|
36
|
-
version: "0.2.0"
|
|
37
|
-
}), LabelAnnotation.set([
|
|
38
|
-
"name"
|
|
39
|
-
]));
|
|
40
|
-
var CompanionTo = Schema.Struct({
|
|
41
|
-
id: Type.ObjectId
|
|
42
|
-
}).pipe(Type.Relation({
|
|
43
|
-
typename: "dxos.org/relation/assistant/CompanionTo",
|
|
44
|
-
version: "0.1.0",
|
|
45
|
-
source: Chat,
|
|
46
|
-
target: Type.Expando
|
|
47
|
-
}));
|
|
48
|
-
var Settings = Schema.mutable(Schema.Struct({
|
|
49
|
-
llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),
|
|
50
|
-
edgeModel: Schema.optional(Schema.String),
|
|
51
|
-
ollamaModel: Schema.optional(Schema.String),
|
|
52
|
-
lmstudioModel: Schema.optional(Schema.String),
|
|
53
|
-
customPrompts: Schema.optional(Schema.Boolean)
|
|
54
|
-
}));
|
|
55
|
-
|
|
56
|
-
// src/types/AssistantAction.ts
|
|
57
|
-
var AssistantAction_exports = {};
|
|
58
|
-
__export(AssistantAction_exports, {
|
|
59
|
-
BlueprintForm: () => BlueprintForm,
|
|
60
|
-
CreateBlueprint: () => CreateBlueprint,
|
|
61
|
-
CreateChat: () => CreateChat,
|
|
62
|
-
CreateSequence: () => CreateSequence,
|
|
63
|
-
OnSpaceCreated: () => OnSpaceCreated
|
|
64
|
-
});
|
|
65
|
-
import { Schema as Schema2 } from "effect";
|
|
66
|
-
import { Blueprint } from "@dxos/blueprints";
|
|
67
|
-
import { SpaceSchema } from "@dxos/client/echo";
|
|
68
|
-
import { Sequence } from "@dxos/conductor";
|
|
69
|
-
import { DataType } from "@dxos/schema";
|
|
70
|
-
var OnSpaceCreated = class extends Schema2.TaggedClass()(`${meta.id}/on-space-created`, {
|
|
71
|
-
input: Schema2.Struct({
|
|
72
|
-
space: SpaceSchema,
|
|
73
|
-
rootCollection: DataType.Collection
|
|
74
|
-
}),
|
|
75
|
-
output: Schema2.Void
|
|
76
|
-
}) {
|
|
77
|
-
};
|
|
78
|
-
var CreateChat = class extends Schema2.TaggedClass()(`${meta.id}/action/create-chat`, {
|
|
79
|
-
input: Schema2.Struct({
|
|
80
|
-
space: SpaceSchema,
|
|
81
|
-
name: Schema2.optional(Schema2.String)
|
|
82
|
-
}),
|
|
83
|
-
output: Schema2.Struct({
|
|
84
|
-
object: Chat
|
|
85
|
-
})
|
|
86
|
-
}) {
|
|
87
|
-
};
|
|
88
|
-
var BlueprintForm = Schema2.Struct({
|
|
89
|
-
key: Schema2.String,
|
|
90
|
-
name: Schema2.String,
|
|
91
|
-
description: Schema2.optional(Schema2.String)
|
|
92
|
-
});
|
|
93
|
-
var CreateBlueprint = class extends Schema2.TaggedClass()(`${meta.id}/action/create-blueprint`, {
|
|
94
|
-
input: BlueprintForm,
|
|
95
|
-
output: Schema2.Struct({
|
|
96
|
-
object: Blueprint.Blueprint
|
|
97
|
-
})
|
|
98
|
-
}) {
|
|
99
|
-
};
|
|
100
|
-
var CreateSequence = class extends Schema2.TaggedClass()(`${meta.id}/action/create-sequence`, {
|
|
101
|
-
input: Schema2.Struct({
|
|
102
|
-
name: Schema2.optional(Schema2.String)
|
|
103
|
-
}),
|
|
104
|
-
output: Schema2.Struct({
|
|
105
|
-
object: Sequence
|
|
106
|
-
})
|
|
107
|
-
}) {
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
// src/types/service.ts
|
|
111
|
-
import { Schema as Schema3 } from "effect";
|
|
112
|
-
import { ComputeGraph } from "@dxos/conductor";
|
|
113
|
-
import { Type as Type2 } from "@dxos/echo";
|
|
114
|
-
import { TypedObject } from "@dxos/echo-schema";
|
|
115
|
-
import { FunctionType } from "@dxos/functions";
|
|
116
|
-
var ApiAuthorizationKey = Schema3.Struct({
|
|
117
|
-
type: Schema3.Literal("api-key"),
|
|
118
|
-
key: Schema3.String,
|
|
119
|
-
placement: Schema3.Union(Schema3.Struct({
|
|
120
|
-
type: Schema3.Literal("authorization-header")
|
|
121
|
-
}), Schema3.Struct({
|
|
122
|
-
type: Schema3.Literal("query"),
|
|
123
|
-
name: Schema3.String
|
|
124
|
-
}))
|
|
125
|
-
});
|
|
126
|
-
var ApiAuthorizationOauth = Schema3.Struct({
|
|
127
|
-
type: Schema3.Literal("oauth"),
|
|
128
|
-
clientId: Schema3.String,
|
|
129
|
-
clientSecret: Schema3.String,
|
|
130
|
-
tokenUrl: Schema3.String,
|
|
131
|
-
grantType: Schema3.String
|
|
132
|
-
});
|
|
133
|
-
var ApiAuthorization = Schema3.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
|
|
134
|
-
var ServiceInterfaceFunction = Schema3.Struct({
|
|
135
|
-
kind: Schema3.Literal("function"),
|
|
136
|
-
fn: Type2.Ref(FunctionType)
|
|
137
|
-
});
|
|
138
|
-
var ServiceInterfaceWorkflow = Schema3.Struct({
|
|
139
|
-
kind: Schema3.Literal("workflow"),
|
|
140
|
-
workflow: Type2.Ref(ComputeGraph)
|
|
141
|
-
});
|
|
142
|
-
var ServiceInterfaceApi = Schema3.Struct({
|
|
143
|
-
kind: Schema3.Literal("api"),
|
|
144
|
-
/**
|
|
145
|
-
* URL to fetch the openapi schema.
|
|
146
|
-
*/
|
|
147
|
-
schemaUrl: Schema3.optional(Schema3.String),
|
|
148
|
-
/**
|
|
149
|
-
* Inlined openapi schema.
|
|
150
|
-
*/
|
|
151
|
-
schema: Schema3.optional(Schema3.Any),
|
|
152
|
-
/**
|
|
153
|
-
* Authorization configuration if required.
|
|
154
|
-
*/
|
|
155
|
-
authorization: Schema3.optional(ApiAuthorization)
|
|
156
|
-
});
|
|
157
|
-
var ServiceInterface = Schema3.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
|
|
158
|
-
var ServiceType = class extends TypedObject({
|
|
159
|
-
typename: "dxos.org/type/ServiceType",
|
|
160
|
-
version: "0.1.0"
|
|
161
|
-
})({
|
|
162
|
-
serviceId: Schema3.String,
|
|
163
|
-
name: Schema3.optional(Schema3.String),
|
|
164
|
-
description: Schema3.optional(Schema3.String),
|
|
165
|
-
category: Schema3.optional(Schema3.String),
|
|
166
|
-
enabled: Schema3.optional(Schema3.Boolean),
|
|
167
|
-
/**
|
|
168
|
-
* Entries exposed: functions, workflows, and APIs.
|
|
169
|
-
*/
|
|
170
|
-
interfaces: Schema3.optional(Schema3.Array(ServiceInterface))
|
|
171
|
-
}) {
|
|
172
|
-
};
|
|
173
|
-
var categoryIcons = {
|
|
174
|
-
finance: "ph--bank--regular",
|
|
175
|
-
health: "ph--heart--regular",
|
|
176
|
-
geolocation: "ph--globe-simple--regular",
|
|
177
|
-
education: "ph--books--regular",
|
|
178
|
-
entertainment: "ph--music-notes--regular",
|
|
179
|
-
shopping: "ph--shopping-cart--regular",
|
|
180
|
-
travel: "ph--airplane-takeoff--regular",
|
|
181
|
-
utilities: "ph--lightning--regular",
|
|
182
|
-
weather: "ph--cloud-rain--regular"
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
export {
|
|
186
|
-
LLM_PROVIDERS,
|
|
187
|
-
Assistant_exports,
|
|
188
|
-
AssistantAction_exports,
|
|
189
|
-
ApiAuthorization,
|
|
190
|
-
ServiceType,
|
|
191
|
-
categoryIcons
|
|
192
|
-
};
|
|
193
|
-
//# sourceMappingURL=chunk-JBFDQMUJ.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/Assistant.ts", "../../../src/types/defs.ts", "../../../src/types/AssistantAction.ts", "../../../src/types/service.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Queue } from '@dxos/client/echo';\nimport { Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo-schema';\n\nimport { LLM_PROVIDERS } from './defs';\n\n/**\n * AI chat.\n */\nexport const Chat = Schema.Struct({\n id: Type.ObjectId,\n name: Schema.optional(Schema.String),\n queue: Type.Ref(Queue),\n\n // TODO(dmaretskyi): Eventually this and the message queue will be the same.\n traceQueue: Schema.optional(Type.Ref(Queue)),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/assistant/Chat',\n version: '0.2.0',\n }),\n LabelAnnotation.set(['name']),\n);\n\nexport interface Chat extends Schema.Schema.Type<typeof Chat> {}\n\n/**\n * Relation between a Chat and companion objects (e.g., artifacts).\n */\nexport const CompanionTo = Schema.Struct({\n id: Type.ObjectId,\n}).pipe(\n Type.Relation({\n typename: 'dxos.org/relation/assistant/CompanionTo',\n version: '0.1.0',\n source: Chat,\n target: Type.Expando,\n }),\n);\n\nexport interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),\n edgeModel: Schema.optional(Schema.String),\n ollamaModel: Schema.optional(Schema.String),\n lmstudioModel: Schema.optional(Schema.String),\n customPrompts: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type Settings = Schema.Schema.Type<typeof Settings>;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nexport const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Blueprint } from '@dxos/blueprints';\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Sequence } from '@dxos/conductor';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nimport { Chat } from './Assistant';\n\nexport class OnSpaceCreated extends Schema.TaggedClass<OnSpaceCreated>()(`${meta.id}/on-space-created`, {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: DataType.Collection,\n }),\n output: Schema.Void,\n}) {}\n\nexport class CreateChat extends Schema.TaggedClass<CreateChat>()(`${meta.id}/action/create-chat`, {\n input: Schema.Struct({\n space: SpaceSchema,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Chat,\n }),\n}) {}\n\nexport const BlueprintForm = Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\nexport class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${meta.id}/action/create-blueprint`, {\n input: BlueprintForm,\n output: Schema.Struct({\n object: Blueprint.Blueprint,\n }),\n}) {}\n\nexport class CreateSequence extends Schema.TaggedClass<CreateSequence>()(`${meta.id}/action/create-sequence`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Sequence,\n }),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Type } from '@dxos/echo';\nimport { TypedObject } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions';\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Type.Ref(FunctionType),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Type.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({\n typename: 'dxos.org/type/ServiceType',\n version: '0.1.0',\n})({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Queue", "Type", "LabelAnnotation", "LLM_PROVIDERS", "Chat", "Schema", "Struct", "id", "Type", "ObjectId", "name", "optional", "String", "queue", "Ref", "Queue", "traceQueue", "pipe", "Obj", "typename", "version", "LabelAnnotation", "set", "CompanionTo", "Relation", "source", "target", "Expando", "Settings", "mutable", "llmProvider", "Literal", "LLM_PROVIDERS", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts", "Boolean", "Schema", "Blueprint", "SpaceSchema", "Sequence", "DataType", "OnSpaceCreated", "Schema", "TaggedClass", "meta", "id", "input", "Struct", "space", "SpaceSchema", "rootCollection", "DataType", "Collection", "output", "Void", "CreateChat", "name", "optional", "String", "object", "Chat", "BlueprintForm", "key", "description", "CreateBlueprint", "Blueprint", "CreateSequence", "Sequence", "Schema", "ComputeGraph", "Type", "TypedObject", "FunctionType", "ApiAuthorizationKey", "Schema", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "Type", "Ref", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "TypedObject", "typename", "version", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather"]
|
|
7
|
-
}
|