@dxos/plugin-assistant 0.9.1-main.c7dcc2e112 → 0.9.1-staging.ee54ba693a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PLUGIN.mdl +18 -24
- package/dist/lib/neutral/{AgentArticle-2BEPWUMN.mjs → AgentArticle-GV6EEW3I.mjs} +1 -2
- package/dist/lib/neutral/AgentArticle-GV6EEW3I.mjs.map +7 -0
- package/dist/lib/neutral/AssistantPlugin.mjs +1 -1
- package/dist/lib/neutral/AssistantPlugin.node.mjs +6 -6
- package/dist/lib/neutral/AssistantPlugin.node.mjs.map +3 -3
- package/dist/lib/neutral/AssistantPlugin.workerd.mjs +7 -34
- package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +4 -4
- package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs +302 -0
- package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs.map +7 -0
- package/dist/lib/neutral/{ChatArticle-KT46SUFU.mjs → ChatArticle-OO7GGEFW.mjs} +2 -2
- package/dist/lib/neutral/{ChatCompanion-YHC43RYQ.mjs → ChatCompanion-GIFJRY6I.mjs} +27 -27
- package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs.map +7 -0
- package/dist/lib/neutral/{ChatDialog-YZDZLIQA.mjs → ChatDialog-5MXN4MXS.mjs} +5 -5
- package/dist/lib/neutral/ChatDialog-5MXN4MXS.mjs.map +7 -0
- package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs +72 -0
- package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs.map +7 -0
- package/dist/lib/neutral/{SpaceHomePrompt-HTWQKLGI.mjs → SpaceHomePrompt-ISAB76LD.mjs} +8 -7
- package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs +63 -0
- package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs.map +7 -0
- package/dist/lib/neutral/{TracePanel-T552TAOH.mjs → TracePanel-JKNWADJ4.mjs} +2 -2
- package/dist/lib/neutral/{TriggerStatus-RBOHHDOK.mjs → TriggerStatus-FURRBHYA.mjs} +7 -5
- package/dist/lib/neutral/TriggerStatus-FURRBHYA.mjs.map +7 -0
- package/dist/lib/neutral/{agent-hydrator-PJBYVMBW.mjs → agent-hydrator-OBO3RHLO.mjs} +3 -4
- package/dist/lib/neutral/agent-hydrator-OBO3RHLO.mjs.map +7 -0
- package/dist/lib/neutral/{agent-service-WV5CSHAG.mjs → agent-service-XFJ4VQMT.mjs} +7 -9
- package/dist/lib/neutral/agent-service-XFJ4VQMT.mjs.map +7 -0
- package/dist/lib/neutral/ai-context-LIKJYMIN.mjs +14 -0
- package/dist/lib/neutral/ai-context-LIKJYMIN.mjs.map +7 -0
- package/dist/lib/neutral/{ai-service-AADUIKBY.mjs → ai-service-DM6YXWUC.mjs} +9 -5
- package/dist/lib/neutral/ai-service-DM6YXWUC.mjs.map +7 -0
- package/dist/lib/neutral/{app-graph-builder-PTSRZXRN.mjs → app-graph-builder-OPVOEQY7.mjs} +36 -19
- package/dist/lib/neutral/app-graph-builder-OPVOEQY7.mjs.map +7 -0
- package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs +97 -0
- package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +20 -18
- package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
- package/dist/lib/neutral/{chunk-KLYLW4WH.mjs → chunk-5IHQ52KJ.mjs} +1 -1
- package/dist/lib/neutral/chunk-5IHQ52KJ.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-5KB2WRI2.mjs → chunk-6Q4OBGIK.mjs} +83 -55
- package/dist/lib/neutral/chunk-6Q4OBGIK.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-54W7N6M6.mjs → chunk-BXI2R4OO.mjs} +49 -84
- package/dist/lib/neutral/chunk-BXI2R4OO.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-5H6UJHLF.mjs → chunk-CMPLPDYE.mjs} +12 -12
- package/dist/lib/neutral/chunk-CMPLPDYE.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GPHT3HYS.mjs +8 -0
- package/dist/lib/neutral/{chunk-7FQT4XMI.mjs.map → chunk-GPHT3HYS.mjs.map} +2 -2
- package/dist/lib/neutral/{markdown-extension-IJ5RQMQ4.mjs → chunk-HKLSFB5I.mjs} +2 -38
- package/dist/lib/neutral/chunk-HKLSFB5I.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-ZNDQVYUN.mjs → chunk-L7AR4VTA.mjs} +3 -3
- package/dist/lib/neutral/{chunk-ZNDQVYUN.mjs.map → chunk-L7AR4VTA.mjs.map} +1 -1
- package/dist/lib/neutral/chunk-LS72HWMM.mjs +42 -0
- package/dist/lib/neutral/chunk-LS72HWMM.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-35EL65O4.mjs → chunk-OZWZGIV2.mjs} +4 -2
- package/dist/lib/neutral/{chunk-35EL65O4.mjs.map → chunk-OZWZGIV2.mjs.map} +3 -3
- package/dist/lib/neutral/{toolkit-GVWXPDLJ.mjs → chunk-QOKLFHUS.mjs} +3 -4
- package/dist/lib/neutral/{toolkit-GVWXPDLJ.mjs.map → chunk-QOKLFHUS.mjs.map} +1 -1
- package/dist/lib/neutral/{chunk-5LKNH7FD.mjs → chunk-SCTHQVIJ.mjs} +8 -5
- package/dist/lib/neutral/{chunk-5LKNH7FD.mjs.map → chunk-SCTHQVIJ.mjs.map} +3 -3
- package/dist/lib/neutral/chunk-U4LTLBAX.mjs +56 -0
- package/dist/lib/neutral/chunk-U4LTLBAX.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-H77JTXAN.mjs → chunk-UPKFUZ6V.mjs} +7 -10
- package/dist/lib/neutral/chunk-UPKFUZ6V.mjs.map +7 -0
- package/dist/lib/neutral/{operation-handler-SF36MOB5.mjs → chunk-V2Y4XE3O.mjs} +3 -4
- package/dist/lib/neutral/{operation-handler-SF36MOB5.mjs.map → chunk-V2Y4XE3O.mjs.map} +1 -1
- package/dist/lib/neutral/chunk-VTK5R4H3.mjs +9 -0
- package/dist/lib/neutral/chunk-VTK5R4H3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-XVGEJWJX.mjs +133 -0
- package/dist/lib/neutral/chunk-XVGEJWJX.mjs.map +7 -0
- package/dist/lib/neutral/{companion-chat-provisioner-YZZ73P6E.mjs → companion-chat-provisioner-IQV5VIVE.mjs} +14 -8
- package/dist/lib/neutral/companion-chat-provisioner-IQV5VIVE.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +509 -579
- package/dist/lib/neutral/components/index.mjs.map +4 -4
- package/dist/lib/neutral/{integration-provider-RBD3AFJU.mjs → connector-ITLLTBPZ.mjs} +13 -14
- package/dist/lib/neutral/connector-ITLLTBPZ.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +12 -14
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-chat-Z3FNA6OJ.mjs → create-chat-YGVZZYGP.mjs} +18 -16
- package/dist/lib/neutral/create-chat-YGVZZYGP.mjs.map +7 -0
- package/dist/lib/neutral/{create-object-BJUDDKQQ.mjs → create-object-5PAEJ6KM.mjs} +11 -27
- package/dist/lib/neutral/create-object-5PAEJ6KM.mjs.map +7 -0
- package/dist/lib/neutral/{edge-model-resolver-BBVOJBGJ.mjs → edge-model-resolver-WDJWDZTT.mjs} +2 -2
- package/dist/lib/neutral/execution-graph/index.mjs +182 -64
- package/dist/lib/neutral/execution-graph/index.mjs.map +3 -3
- package/dist/lib/neutral/extensions/index.mjs +8 -0
- package/dist/lib/neutral/{fork-chat-UYXYT6BT.mjs → fork-chat-RMAAYYQF.mjs} +15 -18
- package/dist/lib/neutral/fork-chat-RMAAYYQF.mjs.map +7 -0
- package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs +93 -0
- package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +195 -105
- package/dist/lib/neutral/hooks/index.mjs.map +4 -4
- package/dist/lib/neutral/index.mjs +14 -10
- package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs +41 -0
- package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs +18 -0
- package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-2LEN45GP.mjs +8 -0
- package/dist/lib/neutral/operation-handler-2LEN45GP.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +1 -1
- package/dist/lib/neutral/plugin.mjs +2 -2
- package/dist/lib/neutral/plugin.workerd.mjs +13 -0
- package/dist/lib/neutral/plugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/{react-surface-ES7UHZ65.mjs → react-surface-HEJEK44F.mjs} +20 -35
- package/dist/lib/neutral/react-surface-HEJEK44F.mjs.map +7 -0
- package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs +28 -0
- package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs.map +7 -0
- package/dist/lib/neutral/{run-prompt-in-new-chat-NIAGCKQV.mjs → run-prompt-in-new-chat-RNUJE2FM.mjs} +28 -31
- package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs.map +7 -0
- package/dist/lib/neutral/skill-definition-553MQRTR.mjs +8 -0
- package/dist/lib/neutral/skill-definition-553MQRTR.mjs.map +7 -0
- package/dist/lib/neutral/skills/index.mjs +8 -0
- package/dist/lib/neutral/skills/index.mjs.map +7 -0
- package/dist/lib/neutral/{state-XO2UYSSG.mjs → state-4LGAKSSD.mjs} +8 -2
- package/dist/lib/neutral/{state-XO2UYSSG.mjs.map → state-4LGAKSSD.mjs.map} +3 -3
- package/dist/lib/neutral/testing.mjs +1 -1
- package/dist/lib/neutral/toolkit-ETWLG5NT.mjs +8 -0
- package/dist/lib/neutral/toolkit-ETWLG5NT.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +64 -33
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +5 -1
- package/dist/lib/neutral/{update-chat-name-Y7JWIP64.mjs → update-chat-name-IJJELRR6.mjs} +3 -3
- package/dist/lib/neutral/{update-chat-name-Y7JWIP64.mjs.map → update-chat-name-IJJELRR6.mjs.map} +2 -2
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -1
- package/dist/types/src/capabilities/agent-hydrator.d.ts +1 -1
- package/dist/types/src/capabilities/agent-service.d.ts +1 -2
- package/dist/types/src/capabilities/agent-service.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-context.d.ts +1 -2
- package/dist/types/src/capabilities/ai-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -3
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/automation-templates.d.ts +1 -2
- package/dist/types/src/capabilities/automation-templates.d.ts.map +1 -1
- package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +1 -1
- package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -1
- package/dist/types/src/capabilities/{integration-provider.d.ts → connector.d.ts} +2 -2
- package/dist/types/src/capabilities/connector.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +1 -27
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +3 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown-extension.d.ts +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +1 -2
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/skill-definition.d.ts +5 -0
- package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +1 -17
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts +1 -2
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
- package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +4 -5
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/events.d.ts +0 -4
- package/dist/types/src/components/Chat/events.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -2
- package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +2 -2
- package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +5 -5
- package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/useChatVoiceInput.d.ts +9 -0
- package/dist/types/src/components/ChatPrompt/useChatVoiceInput.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +4 -4
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +2 -2
- package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +2 -2
- package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/SurfaceWidget.d.ts +11 -0
- package/dist/types/src/components/ChatThread/widgets/SurfaceWidget.d.ts.map +1 -0
- package/dist/types/src/components/ChatThread/widgets/index.d.ts +1 -0
- package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -1
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts +2 -2
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -3
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +1 -1
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +2 -2
- package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -1
- package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.d.ts +1 -1
- package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -1
- package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts +12 -0
- package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts.map +1 -0
- package/dist/types/src/{components/TemplateEditor/TemplateEditor.stories.d.ts → containers/AssistantSettings/OllamaModels.stories.d.ts} +9 -7
- package/dist/types/src/containers/AssistantSettings/OllamaModels.stories.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/AssistantSettings/index.d.ts.map +1 -1
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts +2 -9
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -1
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +3 -10
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
- package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
- package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts +13 -0
- package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts.map +1 -0
- package/dist/types/src/containers/IntegrationPrompt/index.d.ts +2 -0
- package/dist/types/src/{components/RoutineProperties → containers/IntegrationPrompt}/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts +1 -1
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts +1 -1
- package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts.map +1 -1
- package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +2 -3
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts +2 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -1
- package/dist/types/src/execution-graph/index.d.ts +3 -3
- package/dist/types/src/execution-graph/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/span-tree.d.ts +13 -0
- package/dist/types/src/execution-graph/span-tree.d.ts.map +1 -1
- package/dist/types/src/extensions/index.d.ts +1 -1
- package/dist/types/src/extensions/index.d.ts.map +1 -1
- package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -2
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
- package/dist/types/src/hooks/useHomeSuggestions.d.ts +8 -0
- package/dist/types/src/hooks/useHomeSuggestions.d.ts.map +1 -0
- package/dist/types/src/hooks/usePresets.d.ts +6 -2
- package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
- package/dist/types/src/hooks/useSkillRegistry.d.ts +21 -0
- package/dist/types/src/hooks/useSkillRegistry.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +4 -0
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-chat.d.ts.map +1 -1
- package/dist/types/src/operations/fork-chat.d.ts.map +1 -1
- package/dist/types/src/operations/generate-home-suggestions.d.ts +5 -0
- package/dist/types/src/operations/generate-home-suggestions.d.ts.map +1 -0
- package/dist/types/src/operations/generate-home-suggestions.test.d.ts +2 -0
- package/dist/types/src/operations/generate-home-suggestions.test.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/resolve-navigation-targets.d.ts +3 -15
- package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -1
- package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +2 -2
- package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -1
- package/dist/types/src/paths.d.ts +1 -1
- package/dist/types/src/paths.d.ts.map +1 -1
- package/dist/types/src/plugin.workerd.d.ts +2 -0
- package/dist/types/src/plugin.workerd.d.ts.map +1 -0
- package/dist/types/src/processor/presets.d.ts +20 -9
- package/dist/types/src/processor/presets.d.ts.map +1 -1
- package/dist/types/src/processor/processor.d.ts +10 -209
- package/dist/types/src/processor/processor.d.ts.map +1 -1
- package/dist/types/src/skills/assistant/index.d.ts +2 -0
- package/dist/types/src/skills/assistant/index.d.ts.map +1 -0
- package/dist/types/src/skills/assistant/skill.d.ts +4 -0
- package/dist/types/src/skills/assistant/skill.d.ts.map +1 -0
- package/dist/types/src/skills/assistant/skill.node.test.d.ts +2 -0
- package/dist/types/src/skills/assistant/skill.node.test.d.ts.map +1 -0
- package/dist/types/src/skills/index.d.ts.map +1 -0
- package/dist/types/src/templates/daily-digest.d.ts +2 -2
- package/dist/types/src/templates/daily-digest.d.ts.map +1 -1
- package/dist/types/src/templates/index.d.ts +3 -3
- package/dist/types/src/templates/index.d.ts.map +1 -1
- package/dist/types/src/templates/research-brief.d.ts +2 -2
- package/dist/types/src/templates/research-brief.d.ts.map +1 -1
- package/dist/types/src/templates/routine-templates.test.d.ts +2 -0
- package/dist/types/src/templates/routine-templates.test.d.ts.map +1 -0
- package/dist/types/src/templates/scaffold.d.ts +9 -9
- package/dist/types/src/templates/scaffold.d.ts.map +1 -1
- package/dist/types/src/testing/test-generator.d.ts +1 -1
- package/dist/types/src/testing/test-generator.d.ts.map +1 -1
- package/dist/types/src/testing/test-sequence.d.ts +1 -8
- package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
- package/dist/types/src/testing/test-trace.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +5 -12
- package/dist/types/src/types/Assistant.d.ts.map +1 -1
- package/dist/types/src/types/AssistantCapabilities.d.ts +21 -0
- package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -1
- package/dist/types/src/types/AssistantOperation.d.ts +17 -110
- package/dist/types/src/types/AssistantOperation.d.ts.map +1 -1
- package/dist/types/src/types/ChatSurface.d.ts +12 -0
- package/dist/types/src/types/ChatSurface.d.ts.map +1 -0
- package/dist/types/src/types/Ollama.d.ts +44 -0
- package/dist/types/src/types/Ollama.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +5 -4
- package/dist/types/src/types/Settings.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +4 -3
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/src/util/suggestions.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +2 -2
- package/package.json +102 -90
- package/src/AssistantPlugin.conversations.json +1 -1
- package/src/AssistantPlugin.node.ts +5 -5
- package/src/AssistantPlugin.test.ts +26 -40
- package/src/AssistantPlugin.ts +12 -10
- package/src/AssistantPlugin.workerd.ts +15 -6
- package/src/capabilities/agent-hydrator.ts +1 -2
- package/src/capabilities/agent-service.ts +5 -7
- package/src/capabilities/ai-context.ts +7 -32
- package/src/capabilities/ai-service.ts +3 -2
- package/src/capabilities/app-graph-builder.ts +38 -18
- package/src/capabilities/automation-templates.ts +3 -3
- package/src/capabilities/companion-chat-provisioner.ts +22 -6
- package/src/capabilities/{integration-provider.ts → connector.ts} +7 -12
- package/src/capabilities/create-object.ts +9 -26
- package/src/capabilities/index.ts +3 -5
- package/src/capabilities/markdown-extension.ts +2 -3
- package/src/capabilities/navigation-resolver.ts +20 -0
- package/src/capabilities/react-surface.tsx +21 -33
- package/src/capabilities/skill-definition.ts +72 -0
- package/src/capabilities/state.ts +7 -0
- package/src/components/AgentProperties/AgentProperties.stories.tsx +1 -2
- package/src/components/Chat/Chat.tsx +28 -10
- package/src/components/Chat/events.ts +0 -6
- package/src/components/ChatPrompt/ChatActions.tsx +181 -18
- package/src/components/ChatPrompt/ChatOptions.stories.tsx +3 -3
- package/src/components/ChatPrompt/ChatOptions.tsx +17 -21
- package/src/components/ChatPrompt/ChatPrompt.tsx +30 -46
- package/src/components/ChatPrompt/useChatVoiceInput.ts +103 -0
- package/src/components/ChatThread/ChatThread.stories.tsx +7 -16
- package/src/components/ChatThread/MarkdownStream.stories.tsx +3 -3
- package/src/components/ChatThread/registry.tsx +43 -17
- package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +2 -2
- package/src/components/ChatThread/widgets/SurfaceWidget.tsx +41 -0
- package/src/components/ChatThread/widgets/index.ts +1 -0
- package/src/components/ProcessTree/ProcessTree.tsx +2 -10
- package/src/components/TaskList/TaskList.stories.tsx +2 -2
- package/src/components/TaskList/TaskList.tsx +2 -2
- package/src/components/Toolbox/Toolbox.tsx +11 -11
- package/src/components/index.ts +0 -6
- package/src/constants.ts +1 -1
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +8 -9
- package/src/containers/AgentArticle/AgentArticle.tsx +1 -1
- package/src/{components → containers}/AssistantSettings/AssistantSettings.stories.tsx +3 -2
- package/src/containers/AssistantSettings/AssistantSettings.tsx +90 -0
- package/src/containers/AssistantSettings/OllamaModels.stories.tsx +108 -0
- package/src/containers/AssistantSettings/OllamaModels.tsx +255 -0
- package/src/containers/ChatArticle/ChatArticle.stories.tsx +3 -3
- package/src/containers/ChatArticle/ChatArticle.tsx +8 -19
- package/src/containers/ChatCompanion/ChatCompanion.tsx +26 -26
- package/src/containers/ChatDialog/ChatDialog.tsx +5 -4
- package/src/containers/IntegrationPrompt/IntegrationPrompt.tsx +79 -0
- package/src/containers/IntegrationPrompt/index.ts +5 -0
- package/src/containers/SpaceHomePrompt/SpaceHomePrompt.tsx +8 -6
- package/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.tsx +46 -32
- package/src/containers/TracePanel/TracePanel.stories.tsx +89 -47
- package/src/containers/TracePanel/TracePanel.tsx +13 -8
- package/src/containers/TracePanel/dxn-extractor.test.ts +2 -2
- package/src/containers/TriggerStatus/TriggerStatus.tsx +8 -4
- package/src/containers/index.ts +2 -3
- package/src/execution-graph/SPEC.md +1 -1
- package/src/execution-graph/execution-graph.test.ts +213 -25
- package/src/execution-graph/execution-graph.ts +209 -72
- package/src/execution-graph/index.ts +8 -8
- package/src/execution-graph/span-tree.test.ts +33 -1
- package/src/execution-graph/span-tree.ts +43 -2
- package/src/execution-graph/sub-agent-delegation.test.ts +19 -19
- package/src/extensions/index.ts +1 -1
- package/src/extensions/prompt-extension.ts +1 -1
- package/src/feed-logger.ts +4 -4
- package/src/functions/services.test.ts +4 -4
- package/src/hooks/index.ts +2 -2
- package/src/hooks/useChatProcessor.ts +12 -16
- package/src/hooks/useContextBinder.ts +2 -4
- package/src/hooks/useDebug.ts +2 -2
- package/src/hooks/useHomeSuggestions.ts +55 -0
- package/src/hooks/usePresets.ts +80 -11
- package/src/hooks/useProcessEphemeralStatus.ts +1 -1
- package/src/hooks/useReferencesProvider.ts +1 -1
- package/src/hooks/useSkillRegistry.ts +125 -0
- package/src/index.ts +1 -1
- package/src/operations/create-chat.ts +11 -12
- package/src/operations/fork-chat.ts +14 -19
- package/src/operations/generate-home-suggestions.test.ts +103 -0
- package/src/operations/generate-home-suggestions.ts +116 -0
- package/src/operations/index.ts +1 -0
- package/src/operations/prompt.node.test.ts +14 -17
- package/src/operations/resolve-navigation-targets.ts +32 -19
- package/src/operations/run-prompt-in-new-chat.ts +30 -33
- package/src/operations/update-chat-name.ts +2 -2
- package/src/paths.ts +4 -2
- package/src/plugin.workerd.ts +5 -0
- package/src/processor/presets.ts +38 -61
- package/src/processor/processor.node.test.ts +1 -1
- package/src/processor/processor.ts +34 -20
- package/src/skills/assistant/index.ts +5 -0
- package/src/{blueprints/assistant/blueprint.node.test.ts → skills/assistant/skill.node.test.ts} +8 -8
- package/src/{blueprints/assistant/blueprint.ts → skills/assistant/skill.ts} +9 -9
- package/src/templates/daily-digest.ts +10 -12
- package/src/templates/index.ts +3 -3
- package/src/templates/research-brief.ts +15 -13
- package/src/templates/routine-templates.test.ts +55 -0
- package/src/templates/scaffold.ts +22 -57
- package/src/testing/data/trace-timeline-multiple.dx.json +1 -1
- package/src/testing/data/trace-timeline-remote.dx.json +1 -1
- package/src/testing/data/trace-timeline.dx.json +3430 -1092
- package/src/testing/test-generator.test.ts +26 -22
- package/src/testing/test-generator.ts +4 -8
- package/src/testing/test-trace.ts +2 -1
- package/src/testing/trace-timeline.node.test.ts +14 -14
- package/src/translations.ts +68 -33
- package/src/types/Assistant.ts +3 -1
- package/src/types/AssistantCapabilities.ts +21 -0
- package/src/types/AssistantOperation.ts +21 -32
- package/src/types/ChatSurface.ts +16 -0
- package/src/types/Ollama.ts +59 -0
- package/src/types/Settings.ts +12 -10
- package/src/types/index.ts +3 -0
- package/src/types/service.ts +14 -14
- package/src/util/suggestions.ts +1 -1
- package/dist/lib/neutral/AgentArticle-2BEPWUMN.mjs.map +0 -7
- package/dist/lib/neutral/AssistantSettings-7ALY4BMS.mjs +0 -40
- package/dist/lib/neutral/AssistantSettings-7ALY4BMS.mjs.map +0 -7
- package/dist/lib/neutral/BlueprintArticle-ZBOZNZM7.mjs +0 -27
- package/dist/lib/neutral/BlueprintArticle-ZBOZNZM7.mjs.map +0 -7
- package/dist/lib/neutral/ChatCompanion-YHC43RYQ.mjs.map +0 -7
- package/dist/lib/neutral/ChatDialog-YZDZLIQA.mjs.map +0 -7
- package/dist/lib/neutral/RoutineArticle-FK5BXQN5.mjs +0 -119
- package/dist/lib/neutral/RoutineArticle-FK5BXQN5.mjs.map +0 -7
- package/dist/lib/neutral/RoutineList-SO5ETHNT.mjs +0 -48
- package/dist/lib/neutral/RoutineList-SO5ETHNT.mjs.map +0 -7
- package/dist/lib/neutral/RoutineProperties-FISLMW2R.mjs +0 -17
- package/dist/lib/neutral/RoutineProperties-FISLMW2R.mjs.map +0 -7
- package/dist/lib/neutral/SpaceHomePrompt-HTWQKLGI.mjs.map +0 -7
- package/dist/lib/neutral/SpaceHomeSuggestions-6G4E7GNJ.mjs +0 -50
- package/dist/lib/neutral/SpaceHomeSuggestions-6G4E7GNJ.mjs.map +0 -7
- package/dist/lib/neutral/TriggerStatus-RBOHHDOK.mjs.map +0 -7
- package/dist/lib/neutral/agent-hydrator-PJBYVMBW.mjs.map +0 -7
- package/dist/lib/neutral/agent-service-WV5CSHAG.mjs.map +0 -7
- package/dist/lib/neutral/ai-context-7WRHWYXY.mjs +0 -42
- package/dist/lib/neutral/ai-context-7WRHWYXY.mjs.map +0 -7
- package/dist/lib/neutral/ai-service-AADUIKBY.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-PTSRZXRN.mjs.map +0 -7
- package/dist/lib/neutral/automation-templates-M2XQWGR6.mjs +0 -115
- package/dist/lib/neutral/automation-templates-M2XQWGR6.mjs.map +0 -7
- package/dist/lib/neutral/blueprint-definition-2XPYI35X.mjs +0 -40
- package/dist/lib/neutral/blueprint-definition-2XPYI35X.mjs.map +0 -7
- package/dist/lib/neutral/blueprints/index.mjs +0 -8
- package/dist/lib/neutral/chunk-54W7N6M6.mjs.map +0 -7
- package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-5KB2WRI2.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7FQT4XMI.mjs +0 -8
- package/dist/lib/neutral/chunk-H77JTXAN.mjs.map +0 -7
- package/dist/lib/neutral/chunk-IQZJ5TTM.mjs +0 -130
- package/dist/lib/neutral/chunk-IQZJ5TTM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KLYLW4WH.mjs.map +0 -7
- package/dist/lib/neutral/companion-chat-provisioner-YZZ73P6E.mjs.map +0 -7
- package/dist/lib/neutral/create-chat-Z3FNA6OJ.mjs.map +0 -7
- package/dist/lib/neutral/create-object-BJUDDKQQ.mjs.map +0 -7
- package/dist/lib/neutral/fork-chat-UYXYT6BT.mjs.map +0 -7
- package/dist/lib/neutral/integration-provider-RBD3AFJU.mjs.map +0 -7
- package/dist/lib/neutral/markdown-extension-IJ5RQMQ4.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-ES7UHZ65.mjs.map +0 -7
- package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs +0 -22
- package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs.map +0 -7
- package/dist/lib/neutral/run-prompt-in-new-chat-NIAGCKQV.mjs.map +0 -7
- package/dist/types/src/blueprints/assistant/blueprint.d.ts +0 -4
- package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +0 -1
- package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts +0 -2
- package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts.map +0 -1
- package/dist/types/src/blueprints/assistant/index.d.ts +0 -2
- package/dist/types/src/blueprints/assistant/index.d.ts.map +0 -1
- package/dist/types/src/blueprints/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/integration-provider.d.ts.map +0 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +0 -1
- package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts +0 -7
- package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts.map +0 -1
- package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts +0 -15
- package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts.map +0 -1
- package/dist/types/src/components/RoutineProperties/index.d.ts +0 -2
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +0 -13
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +0 -21
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +0 -16
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts +0 -12
- package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +0 -3
- package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +0 -8
- package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/index.d.ts +0 -2
- package/dist/types/src/components/TemplateEditor/index.d.ts.map +0 -1
- package/dist/types/src/components/TemplateEditor/types.d.ts +0 -18
- package/dist/types/src/components/TemplateEditor/types.d.ts.map +0 -1
- package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +0 -6
- package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +0 -1
- package/dist/types/src/containers/BlueprintArticle/index.d.ts +0 -2
- package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +0 -1
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts +0 -6
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +0 -1
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts +0 -15
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts.map +0 -1
- package/dist/types/src/containers/RoutineArticle/index.d.ts +0 -2
- package/dist/types/src/containers/RoutineArticle/index.d.ts.map +0 -1
- package/dist/types/src/containers/RoutineList/RoutineList.d.ts +0 -6
- package/dist/types/src/containers/RoutineList/RoutineList.d.ts.map +0 -1
- package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts +0 -21
- package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts.map +0 -1
- package/dist/types/src/containers/RoutineList/index.d.ts +0 -2
- package/dist/types/src/containers/RoutineList/index.d.ts.map +0 -1
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts +0 -66
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +0 -1
- package/dist/types/src/hooks/useOnline.d.ts +0 -3
- package/dist/types/src/hooks/useOnline.d.ts.map +0 -1
- package/dist/types/src/templates/automation-templates.test.d.ts +0 -2
- package/dist/types/src/templates/automation-templates.test.d.ts.map +0 -1
- package/src/blueprints/assistant/index.ts +0 -5
- package/src/capabilities/blueprint-definition.ts +0 -67
- package/src/components/AssistantSettings/AssistantSettings.tsx +0 -43
- package/src/components/RoutineProperties/RoutineProperties.stories.tsx +0 -59
- package/src/components/RoutineProperties/RoutineProperties.tsx +0 -23
- package/src/components/RoutineProperties/index.ts +0 -5
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +0 -95
- package/src/components/TemplateEditor/TemplateEditor.tsx +0 -80
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +0 -76
- package/src/components/TemplateEditor/TemplateForm.tsx +0 -204
- package/src/components/TemplateEditor/extensions/handlebars-extension.ts +0 -274
- package/src/components/TemplateEditor/extensions/index.ts +0 -6
- package/src/components/TemplateEditor/extensions/xml-extension.ts +0 -64
- package/src/components/TemplateEditor/index.ts +0 -5
- package/src/components/TemplateEditor/types.tsx +0 -28
- package/src/containers/BlueprintArticle/BlueprintArticle.tsx +0 -29
- package/src/containers/BlueprintArticle/index.ts +0 -5
- package/src/containers/RoutineArticle/RoutineArticle.stories.tsx +0 -75
- package/src/containers/RoutineArticle/RoutineArticle.tsx +0 -109
- package/src/containers/RoutineArticle/index.ts +0 -5
- package/src/containers/RoutineList/RoutineList.stories.tsx +0 -130
- package/src/containers/RoutineList/RoutineList.tsx +0 -50
- package/src/containers/RoutineList/index.ts +0 -5
- package/src/hooks/useBlueprintRegistry.ts +0 -125
- package/src/hooks/useOnline.ts +0 -10
- package/src/templates/automation-templates.test.ts +0 -66
- /package/dist/lib/neutral/{ChatArticle-KT46SUFU.mjs.map → ChatArticle-OO7GGEFW.mjs.map} +0 -0
- /package/dist/lib/neutral/{TracePanel-T552TAOH.mjs.map → TracePanel-JKNWADJ4.mjs.map} +0 -0
- /package/dist/lib/neutral/{edge-model-resolver-BBVOJBGJ.mjs.map → edge-model-resolver-WDJWDZTT.mjs.map} +0 -0
- /package/dist/lib/neutral/{blueprints → extensions}/index.mjs.map +0 -0
- /package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.stories.d.ts +0 -0
- /package/dist/types/src/{components → containers}/AssistantSettings/index.d.ts +0 -0
- /package/dist/types/src/{blueprints → skills}/index.d.ts +0 -0
- /package/src/{components → containers}/AssistantSettings/index.ts +0 -0
- /package/src/{blueprints → skills}/index.ts +0 -0
|
@@ -12,9 +12,16 @@ import { AppCapabilities } from '@dxos/app-toolkit';
|
|
|
12
12
|
import { Chat } from '@dxos/assistant-toolkit';
|
|
13
13
|
import { Obj } from '@dxos/echo';
|
|
14
14
|
import { log } from '@dxos/log';
|
|
15
|
-
import {
|
|
15
|
+
import { AttentionCapabilities } from '@dxos/plugin-attention';
|
|
16
|
+
import {
|
|
17
|
+
COMPANION_VIEW_STATE_CONTEXT,
|
|
18
|
+
DeckCapabilities,
|
|
19
|
+
PLANK_COMPANION_TYPE,
|
|
20
|
+
type StoredDeckState,
|
|
21
|
+
companionVariantAspect,
|
|
22
|
+
} from '@dxos/plugin-deck';
|
|
16
23
|
import { getLinkedVariant } from '@dxos/react-ui-attention';
|
|
17
|
-
import {
|
|
24
|
+
import { Position } from '@dxos/util';
|
|
18
25
|
|
|
19
26
|
import { ASSISTANT_COMPANION_VARIANT } from '#meta';
|
|
20
27
|
import { AssistantCapabilities, AssistantOperation } from '#types';
|
|
@@ -31,6 +38,10 @@ export default Capability.makeModule(
|
|
|
31
38
|
const deckStateAtom = yield* Capability.get(DeckCapabilities.State);
|
|
32
39
|
const cacheAtom = yield* Capability.get(AssistantCapabilities.CompanionChatCache);
|
|
33
40
|
const stateAtom = yield* Capability.get(AssistantCapabilities.State);
|
|
41
|
+
// The selected companion variant moved off deck state into a global view-state aspect; read and
|
|
42
|
+
// observe it directly so a tab switch (which no longer touches deck state) still re-provisions.
|
|
43
|
+
const viewState = yield* Capability.get(AttentionCapabilities.ViewState);
|
|
44
|
+
const variantAtom = viewState.atom(companionVariantAspect, COMPANION_VIEW_STATE_CONTEXT);
|
|
34
45
|
|
|
35
46
|
const plankSubs = new Map<string, () => void>();
|
|
36
47
|
|
|
@@ -91,6 +102,7 @@ export default Capability.makeModule(
|
|
|
91
102
|
return;
|
|
92
103
|
}
|
|
93
104
|
|
|
105
|
+
const companionVariant = registry.get(variantAtom).variant;
|
|
94
106
|
const plankIds = new Set(deck.solo ? [deck.solo] : deck.active);
|
|
95
107
|
|
|
96
108
|
// Remove subscriptions for planks that are no longer active.
|
|
@@ -101,18 +113,20 @@ export default Capability.makeModule(
|
|
|
101
113
|
}
|
|
102
114
|
|
|
103
115
|
for (const plankId of plankIds) {
|
|
104
|
-
const resolved = provisionForPlank(plankId,
|
|
116
|
+
const resolved = provisionForPlank(plankId, companionVariant);
|
|
105
117
|
|
|
106
118
|
if (resolved) {
|
|
107
119
|
// Already provisioned — no need to watch connections.
|
|
108
120
|
unsubPlank(plankId);
|
|
109
121
|
} else if (!plankSubs.has(plankId)) {
|
|
110
122
|
// Not yet resolved — subscribe to child connections so we re-try
|
|
111
|
-
// when graph builder extensions add companion nodes (after expand).
|
|
123
|
+
// when graph builder extensions add companion nodes (after expand). This subscription
|
|
124
|
+
// outlives the current `provision()` run, so re-read the latest variant at callback time
|
|
125
|
+
// rather than closing over the one captured here.
|
|
112
126
|
plankSubs.set(
|
|
113
127
|
plankId,
|
|
114
128
|
registry.subscribe(graph.connections(plankId, 'child'), () => {
|
|
115
|
-
if (provisionForPlank(plankId,
|
|
129
|
+
if (provisionForPlank(plankId, registry.get(variantAtom).variant)) {
|
|
116
130
|
unsubPlank(plankId);
|
|
117
131
|
}
|
|
118
132
|
}),
|
|
@@ -125,11 +139,13 @@ export default Capability.makeModule(
|
|
|
125
139
|
|
|
126
140
|
const unsub1 = registry.subscribe(deckStateAtom, provision);
|
|
127
141
|
const unsub2 = registry.subscribe(stateAtom, provision);
|
|
142
|
+
const unsub3 = registry.subscribe(variantAtom, provision);
|
|
128
143
|
|
|
129
144
|
return Capability.contributes(Capabilities.Null, null, () =>
|
|
130
145
|
Effect.sync(() => {
|
|
131
146
|
unsub1();
|
|
132
147
|
unsub2();
|
|
148
|
+
unsub3();
|
|
133
149
|
unsubAllPlanks();
|
|
134
150
|
}),
|
|
135
151
|
);
|
|
@@ -147,7 +163,7 @@ const resolveEffectiveVariant = (
|
|
|
147
163
|
): string | undefined => {
|
|
148
164
|
const companions = Graph.getConnections(graph, plankId, 'child')
|
|
149
165
|
.filter((node) => node.type === PLANK_COMPANION_TYPE)
|
|
150
|
-
.toSorted((a, b) =>
|
|
166
|
+
.toSorted((a, b) => Position.compare(a.properties, b.properties));
|
|
151
167
|
|
|
152
168
|
if (companions.length === 0) {
|
|
153
169
|
return undefined;
|
|
@@ -7,11 +7,7 @@ import * as Schema from 'effect/Schema';
|
|
|
7
7
|
|
|
8
8
|
import { Capability } from '@dxos/app-framework';
|
|
9
9
|
import { Obj, Ref } from '@dxos/echo';
|
|
10
|
-
import {
|
|
11
|
-
type CredentialForm,
|
|
12
|
-
Integration,
|
|
13
|
-
IntegrationProvider as IntegrationProviderCapability,
|
|
14
|
-
} from '@dxos/plugin-integration';
|
|
10
|
+
import { Connection, Connector, type CredentialForm } from '@dxos/plugin-connector';
|
|
15
11
|
import { AccessToken } from '@dxos/types';
|
|
16
12
|
|
|
17
13
|
import { ANTHROPIC_PROVIDER_ID, ANTHROPIC_SOURCE } from '../constants';
|
|
@@ -56,25 +52,24 @@ const credentialForm: CredentialForm<Schema.Schema.Type<typeof AnthropicTokenFor
|
|
|
56
52
|
defaultValues: { token: '' },
|
|
57
53
|
// Validates before the dialog closes so 401/403 errors are shown inline.
|
|
58
54
|
onValidate: ({ values }) => validateAnthropicKey(values.token.trim()),
|
|
59
|
-
onSubmit: ({ values,
|
|
55
|
+
onSubmit: ({ values, connector }) =>
|
|
60
56
|
Effect.sync(() => {
|
|
61
57
|
const accessToken = Obj.make(AccessToken.AccessToken, {
|
|
62
58
|
source: ANTHROPIC_SOURCE,
|
|
63
59
|
token: values.token.trim(),
|
|
64
60
|
});
|
|
65
|
-
const
|
|
66
|
-
name:
|
|
67
|
-
|
|
61
|
+
const connection = Obj.make(Connection.Connection, {
|
|
62
|
+
name: connector.label ?? 'Anthropic',
|
|
63
|
+
connectorId: connector.id,
|
|
68
64
|
accessToken: Ref.make(accessToken),
|
|
69
|
-
targets: [],
|
|
70
65
|
});
|
|
71
|
-
return { kind: 'complete' as const, accessToken,
|
|
66
|
+
return { kind: 'complete' as const, accessToken, connection };
|
|
72
67
|
}),
|
|
73
68
|
};
|
|
74
69
|
|
|
75
70
|
export default Capability.makeModule(
|
|
76
71
|
Effect.fnUntraced(function* () {
|
|
77
|
-
return Capability.contributes(
|
|
72
|
+
return Capability.contributes(Connector, [
|
|
78
73
|
{
|
|
79
74
|
id: ANTHROPIC_PROVIDER_ID,
|
|
80
75
|
source: ANTHROPIC_SOURCE,
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
import * as Effect from 'effect/Effect';
|
|
6
6
|
import * as Layer from 'effect/Layer';
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { Agent,
|
|
10
|
-
import {
|
|
8
|
+
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
+
import { Agent, AgentSkill, Chat } from '@dxos/assistant-toolkit';
|
|
10
|
+
import { Operation, ServiceResolver, Skill } from '@dxos/compute';
|
|
11
11
|
import { Sequence } from '@dxos/conductor';
|
|
12
|
-
import { Database,
|
|
12
|
+
import { Database, Obj, Type } from '@dxos/echo';
|
|
13
13
|
import { SpaceCapabilities, SpaceOperation } from '@dxos/plugin-space';
|
|
14
14
|
|
|
15
15
|
import { AssistantOperation } from '#types';
|
|
@@ -30,34 +30,19 @@ export default Capability.makeModule(
|
|
|
30
30
|
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
31
31
|
object,
|
|
32
32
|
target: options.target,
|
|
33
|
-
hidden: true,
|
|
34
33
|
targetNodeId: options.targetNodeId ?? getChatsPath(options.db.spaceId),
|
|
35
34
|
});
|
|
36
35
|
}),
|
|
37
36
|
}),
|
|
38
37
|
Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
|
|
39
|
-
id: Type.getTypename(
|
|
40
|
-
inputSchema: AssistantOperation.
|
|
38
|
+
id: Type.getTypename(Skill.Skill),
|
|
39
|
+
inputSchema: AssistantOperation.SkillForm,
|
|
41
40
|
createObject: (props, options) =>
|
|
42
41
|
Effect.gen(function* () {
|
|
43
|
-
const object =
|
|
42
|
+
const object = Skill.make(props);
|
|
44
43
|
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
45
44
|
object,
|
|
46
45
|
target: options.target,
|
|
47
|
-
hidden: true,
|
|
48
|
-
targetNodeId: options.targetNodeId,
|
|
49
|
-
});
|
|
50
|
-
}),
|
|
51
|
-
}),
|
|
52
|
-
Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
|
|
53
|
-
id: Type.getTypename(Routine.Routine),
|
|
54
|
-
createObject: (props, options) =>
|
|
55
|
-
Effect.gen(function* () {
|
|
56
|
-
const object = Routine.make(props);
|
|
57
|
-
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
58
|
-
object,
|
|
59
|
-
target: options.target,
|
|
60
|
-
hidden: true,
|
|
61
46
|
targetNodeId: options.targetNodeId,
|
|
62
47
|
});
|
|
63
48
|
}),
|
|
@@ -70,7 +55,6 @@ export default Capability.makeModule(
|
|
|
70
55
|
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
71
56
|
object,
|
|
72
57
|
target: options.target,
|
|
73
|
-
hidden: true,
|
|
74
58
|
targetNodeId: options.targetNodeId,
|
|
75
59
|
});
|
|
76
60
|
}),
|
|
@@ -79,17 +63,16 @@ export default Capability.makeModule(
|
|
|
79
63
|
id: Type.getTypename(Agent.Agent),
|
|
80
64
|
createObject: (props, options) =>
|
|
81
65
|
Effect.gen(function* () {
|
|
82
|
-
const object = yield* Agent.makeInitialized({ name: '', instructions: '' },
|
|
66
|
+
const object = yield* Agent.makeInitialized({ name: '', instructions: '' }, AgentSkill.make());
|
|
83
67
|
|
|
84
68
|
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
85
69
|
object,
|
|
86
70
|
target: options.target,
|
|
87
|
-
hidden: true,
|
|
88
71
|
targetNodeId: options.targetNodeId,
|
|
89
72
|
});
|
|
90
73
|
}).pipe(
|
|
91
74
|
Effect.provide(
|
|
92
|
-
ServiceResolver.provide({ space: options.db.spaceId }, Database.Service
|
|
75
|
+
ServiceResolver.provide({ space: options.db.spaceId }, Database.Service).pipe(
|
|
93
76
|
Layer.provide(Capability.asLayer(Capabilities.ServiceResolver, ServiceResolver.ServiceResolver)),
|
|
94
77
|
),
|
|
95
78
|
),
|
|
@@ -14,13 +14,11 @@ export const AiService = Capability.lazy<AssistantPluginOptions | void, Capabili
|
|
|
14
14
|
'AiService',
|
|
15
15
|
() => import('./ai-service'),
|
|
16
16
|
);
|
|
17
|
-
export const
|
|
18
|
-
'AnthropicIntegrationProvider',
|
|
19
|
-
() => import('./integration-provider'),
|
|
20
|
-
);
|
|
17
|
+
export const Connector = Capability.lazy('AnthropicConnector', () => import('./connector'));
|
|
21
18
|
export const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));
|
|
19
|
+
export const NavigationResolver = Capability.lazy('NavigationResolver', () => import('./navigation-resolver'));
|
|
22
20
|
export const AutomationTemplates = Capability.lazy('AutomationTemplates', () => import('./automation-templates'));
|
|
23
|
-
export const
|
|
21
|
+
export const SkillDefinition = Capability.lazy('SkillDefinition', () => import('./skill-definition'));
|
|
24
22
|
export const CompanionChatProvisioner = Capability.lazy(
|
|
25
23
|
'CompanionChatProvisioner',
|
|
26
24
|
() => import('./companion-chat-provisioner'),
|
|
@@ -7,8 +7,7 @@ import * as Effect from 'effect/Effect';
|
|
|
7
7
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
8
8
|
import { Obj } from '@dxos/echo';
|
|
9
9
|
import { MarkdownCapabilities } from '@dxos/plugin-markdown/types';
|
|
10
|
-
|
|
11
|
-
import { AssistantOperation } from '#types';
|
|
10
|
+
import { RoutineOperation } from '@dxos/plugin-routine/types';
|
|
12
11
|
|
|
13
12
|
import { promptRunExtension } from '../extensions';
|
|
14
13
|
|
|
@@ -35,7 +34,7 @@ export default Capability.makeModule(
|
|
|
35
34
|
|
|
36
35
|
return promptRunExtension({
|
|
37
36
|
onRun: (promptText) => {
|
|
38
|
-
void invokePromise(
|
|
37
|
+
void invokePromise(RoutineOperation.RunPromptInNewChat, { db, instructions: promptText });
|
|
39
38
|
},
|
|
40
39
|
});
|
|
41
40
|
},
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
|
|
7
|
+
import { Capability } from '@dxos/app-framework';
|
|
8
|
+
import { AppCapabilities, Paths, TypeSection } from '@dxos/app-toolkit';
|
|
9
|
+
import { Chat } from '@dxos/assistant-toolkit';
|
|
10
|
+
|
|
11
|
+
export default Capability.makeModule(
|
|
12
|
+
Effect.fnUntraced(function* () {
|
|
13
|
+
return [
|
|
14
|
+
Capability.contributes(
|
|
15
|
+
AppCapabilities.NavigationPathResolver,
|
|
16
|
+
TypeSection.createTypeSectionPathResolver(Chat.Chat, { groupId: Paths.GroupSegments.ai }),
|
|
17
|
+
),
|
|
18
|
+
];
|
|
19
|
+
}),
|
|
20
|
+
);
|
|
@@ -8,35 +8,33 @@ import React, { type ComponentProps, useEffect } from 'react';
|
|
|
8
8
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
9
|
import { Surface, useSettingsState } from '@dxos/app-framework/ui';
|
|
10
10
|
import { AppSurface, useActiveSpace } from '@dxos/app-toolkit/ui';
|
|
11
|
-
import {
|
|
11
|
+
import { Agent, Chat, Plan } from '@dxos/assistant-toolkit';
|
|
12
12
|
import { getSpace } from '@dxos/client/echo';
|
|
13
|
-
import {
|
|
13
|
+
import { Instructions } from '@dxos/compute';
|
|
14
14
|
import { Sequence } from '@dxos/conductor';
|
|
15
15
|
import { InvocationTraceContainer } from '@dxos/devtools';
|
|
16
16
|
import { Feed, Obj } from '@dxos/echo';
|
|
17
17
|
import { log } from '@dxos/log';
|
|
18
18
|
import { SpaceHomeContent, SpaceHomePinBottom } from '@dxos/plugin-space';
|
|
19
|
-
import { Prompts } from '@dxos/plugin-space';
|
|
20
19
|
import { Panel } from '@dxos/react-ui';
|
|
20
|
+
import { Position } from '@dxos/util';
|
|
21
21
|
|
|
22
|
-
import { AssistantSettings } from '#components';
|
|
23
22
|
import {
|
|
24
|
-
BlueprintArticle,
|
|
25
|
-
ChatCompanion,
|
|
26
|
-
ChatArticle,
|
|
27
|
-
ChatDialog,
|
|
28
23
|
AgentArticle,
|
|
29
24
|
AgentProperties,
|
|
25
|
+
AssistantSettings,
|
|
26
|
+
ChatArticle,
|
|
27
|
+
ChatCompanion,
|
|
28
|
+
ChatDialog,
|
|
29
|
+
IntegrationPrompt,
|
|
30
30
|
PlanArticle,
|
|
31
|
-
RoutineArticle,
|
|
32
|
-
RoutineList,
|
|
33
31
|
SpaceHomePrompt,
|
|
34
32
|
SpaceHomeSuggestions,
|
|
35
33
|
TracePanel,
|
|
36
34
|
TriggerStatus,
|
|
37
35
|
} from '#containers';
|
|
38
36
|
import { ASSISTANT_COMPANION_VARIANT, ASSISTANT_DIALOG, meta } from '#meta';
|
|
39
|
-
import { type Assistant } from '#types';
|
|
37
|
+
import { type Assistant, ChatSurface } from '#types';
|
|
40
38
|
|
|
41
39
|
export default Capability.makeModule(() =>
|
|
42
40
|
Effect.succeed(
|
|
@@ -57,7 +55,7 @@ export default Capability.makeModule(() =>
|
|
|
57
55
|
Surface.create({
|
|
58
56
|
id: 'spaceHomeSuggestions',
|
|
59
57
|
filter: Surface.makeFilter(SpaceHomeContent),
|
|
60
|
-
position:
|
|
58
|
+
position: Position.last,
|
|
61
59
|
component: ({ data }) => <SpaceHomeSuggestions space={data.space} />,
|
|
62
60
|
}),
|
|
63
61
|
Surface.create({
|
|
@@ -106,7 +104,7 @@ export default Capability.makeModule(() =>
|
|
|
106
104
|
AppSurface.literal(AppSurface.Article, 'invocations'),
|
|
107
105
|
AppSurface.oneOf(
|
|
108
106
|
AppSurface.companion(AppSurface.Article, Sequence.Sequence),
|
|
109
|
-
AppSurface.companion(AppSurface.Article,
|
|
107
|
+
AppSurface.companion(AppSurface.Article, Instructions.Instructions),
|
|
110
108
|
),
|
|
111
109
|
),
|
|
112
110
|
component: ({ data, role }) => {
|
|
@@ -114,7 +112,7 @@ export default Capability.makeModule(() =>
|
|
|
114
112
|
const feed = space?.properties.invocationTraceFeed?.target;
|
|
115
113
|
const feedDXN = feed ? Feed.getQueueUri(feed) : undefined;
|
|
116
114
|
// TODO(wittjosiah): Support invocation filtering for prompts.
|
|
117
|
-
const target = Obj.instanceOf(
|
|
115
|
+
const target = Obj.instanceOf(Instructions.Instructions, data.companionTo) ? undefined : data.companionTo;
|
|
118
116
|
|
|
119
117
|
return (
|
|
120
118
|
<Panel.Root role={role} className='dx-document'>
|
|
@@ -125,20 +123,6 @@ export default Capability.makeModule(() =>
|
|
|
125
123
|
);
|
|
126
124
|
},
|
|
127
125
|
}),
|
|
128
|
-
Surface.create({
|
|
129
|
-
id: 'blueprint',
|
|
130
|
-
filter: AppSurface.object(AppSurface.Article, Blueprint.Blueprint),
|
|
131
|
-
component: ({ data, role }) => (
|
|
132
|
-
<BlueprintArticle role={role} subject={data.subject} attendableId={data.attendableId} />
|
|
133
|
-
),
|
|
134
|
-
}),
|
|
135
|
-
Surface.create({
|
|
136
|
-
id: 'prompt',
|
|
137
|
-
filter: AppSurface.object(AppSurface.Article, Routine.Routine),
|
|
138
|
-
component: ({ data, role }) => (
|
|
139
|
-
<RoutineArticle role={role} subject={data.subject} attendableId={data.attendableId} />
|
|
140
|
-
),
|
|
141
|
-
}),
|
|
142
126
|
Surface.create({
|
|
143
127
|
id: 'plan',
|
|
144
128
|
filter: AppSurface.object(AppSurface.Article, Plan.Plan),
|
|
@@ -167,6 +151,15 @@ export default Capability.makeModule(() =>
|
|
|
167
151
|
return <TracePanel space={space} />;
|
|
168
152
|
},
|
|
169
153
|
}),
|
|
154
|
+
Surface.create({
|
|
155
|
+
id: 'integrationPrompt',
|
|
156
|
+
filter: Surface.makeFilter(ChatSurface, (data) => data.role === 'integration-prompt'),
|
|
157
|
+
component: ({ data }) => {
|
|
158
|
+
// `data.data` is model-supplied JSON (untyped); narrow `service` before use.
|
|
159
|
+
const service = typeof data.data?.service === 'string' ? data.data.service : undefined;
|
|
160
|
+
return <IntegrationPrompt service={service} />;
|
|
161
|
+
},
|
|
162
|
+
}),
|
|
170
163
|
Surface.create({
|
|
171
164
|
id: 'triggerStatus',
|
|
172
165
|
filter: Surface.makeFilter(AppSurface.StatusIndicator),
|
|
@@ -179,11 +172,6 @@ export default Capability.makeModule(() =>
|
|
|
179
172
|
return <TriggerStatus role='status-indicator' space={space} />;
|
|
180
173
|
},
|
|
181
174
|
}),
|
|
182
|
-
Surface.create({
|
|
183
|
-
id: 'prompts',
|
|
184
|
-
filter: AppSurface.subject(Prompts, Obj.isObject),
|
|
185
|
-
component: ({ data }) => <RoutineList subject={data.subject} />,
|
|
186
|
-
}),
|
|
187
175
|
]),
|
|
188
176
|
),
|
|
189
177
|
);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
|
|
7
|
+
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
8
|
+
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
9
|
+
import {
|
|
10
|
+
AgentHandlers,
|
|
11
|
+
AgentSkill,
|
|
12
|
+
AgentSkillHandlers,
|
|
13
|
+
AgentWizardHandlers,
|
|
14
|
+
AgentWizardSkill,
|
|
15
|
+
AlarmHandlers,
|
|
16
|
+
AlarmSkill,
|
|
17
|
+
AutomationSkill,
|
|
18
|
+
BrowserSkill,
|
|
19
|
+
ConnectorsSkill,
|
|
20
|
+
DatabaseHandlers,
|
|
21
|
+
DatabaseSkill,
|
|
22
|
+
DelegationHandlers,
|
|
23
|
+
DelegationSkill,
|
|
24
|
+
DiscordSkill,
|
|
25
|
+
LinearSkill,
|
|
26
|
+
MemorySkill,
|
|
27
|
+
PlanningHandlers,
|
|
28
|
+
PlanningSkill,
|
|
29
|
+
SkillManagerHandlers,
|
|
30
|
+
SkillManagerSkill,
|
|
31
|
+
WebSearchHandlers,
|
|
32
|
+
WebSearchSkill,
|
|
33
|
+
makeDelegationStrategy,
|
|
34
|
+
} from '@dxos/assistant-toolkit';
|
|
35
|
+
import { RoutineCapabilities } from '@dxos/plugin-routine';
|
|
36
|
+
|
|
37
|
+
import { AssistantSkill } from '#skills';
|
|
38
|
+
|
|
39
|
+
const skillDefinition = () =>
|
|
40
|
+
Effect.succeed([
|
|
41
|
+
Capability.contributes(AppCapabilities.SkillDefinition, AssistantSkill),
|
|
42
|
+
Capability.contributes(AppCapabilities.SkillDefinition, BrowserSkill),
|
|
43
|
+
Capability.contributes(AppCapabilities.SkillDefinition, ConnectorsSkill),
|
|
44
|
+
Capability.contributes(AppCapabilities.SkillDefinition, DatabaseSkill),
|
|
45
|
+
Capability.contributes(AppCapabilities.SkillDefinition, WebSearchSkill),
|
|
46
|
+
Capability.contributes(AppCapabilities.SkillDefinition, DiscordSkill),
|
|
47
|
+
Capability.contributes(AppCapabilities.SkillDefinition, LinearSkill),
|
|
48
|
+
Capability.contributes(AppCapabilities.SkillDefinition, AgentSkill),
|
|
49
|
+
Capability.contributes(AppCapabilities.SkillDefinition, PlanningSkill),
|
|
50
|
+
Capability.contributes(AppCapabilities.SkillDefinition, MemorySkill),
|
|
51
|
+
Capability.contributes(AppCapabilities.SkillDefinition, AutomationSkill),
|
|
52
|
+
Capability.contributes(AppCapabilities.SkillDefinition, SkillManagerSkill),
|
|
53
|
+
Capability.contributes(AppCapabilities.SkillDefinition, AgentWizardSkill),
|
|
54
|
+
Capability.contributes(AppCapabilities.SkillDefinition, DelegationSkill),
|
|
55
|
+
Capability.contributes(AppCapabilities.SkillDefinition, AlarmSkill),
|
|
56
|
+
|
|
57
|
+
Capability.contributes(Capabilities.OperationHandler, AgentHandlers),
|
|
58
|
+
Capability.contributes(Capabilities.OperationHandler, AgentSkillHandlers),
|
|
59
|
+
Capability.contributes(Capabilities.OperationHandler, SkillManagerHandlers),
|
|
60
|
+
Capability.contributes(Capabilities.OperationHandler, DatabaseHandlers),
|
|
61
|
+
Capability.contributes(Capabilities.OperationHandler, WebSearchHandlers),
|
|
62
|
+
Capability.contributes(Capabilities.OperationHandler, AgentWizardHandlers),
|
|
63
|
+
Capability.contributes(Capabilities.OperationHandler, DelegationHandlers),
|
|
64
|
+
Capability.contributes(Capabilities.OperationHandler, PlanningHandlers),
|
|
65
|
+
Capability.contributes(Capabilities.OperationHandler, AlarmHandlers),
|
|
66
|
+
|
|
67
|
+
// Run the conversational agent as a supervisor: delegate in-progress plan tasks to sub-agents
|
|
68
|
+
// and fold their results back into the conversation (consumed by the AgentService LayerSpec).
|
|
69
|
+
Capability.contributes(RoutineCapabilities.AgentDelegationStrategy, makeDelegationStrategy()),
|
|
70
|
+
]);
|
|
71
|
+
|
|
72
|
+
export default skillDefinition;
|
|
@@ -27,9 +27,16 @@ export default Capability.makeModule(() =>
|
|
|
27
27
|
|
|
28
28
|
const companionChatCacheAtom = Atom.make<Record<string, Obj.Unknown | undefined>>({}).pipe(Atom.keepAlive);
|
|
29
29
|
|
|
30
|
+
const homeSuggestionsCacheAtom = createKvsStore({
|
|
31
|
+
key: `${meta.profile.key}.home-suggestions`,
|
|
32
|
+
schema: AssistantCapabilities.HomeSuggestionsCacheSchema,
|
|
33
|
+
defaultValue: () => ({}),
|
|
34
|
+
});
|
|
35
|
+
|
|
30
36
|
return [
|
|
31
37
|
Capability.contributes(AssistantCapabilities.State, stateAtom),
|
|
32
38
|
Capability.contributes(AssistantCapabilities.CompanionChatCache, companionChatCacheAtom),
|
|
39
|
+
Capability.contributes(AssistantCapabilities.HomeSuggestionsCache, homeSuggestionsCacheAtom),
|
|
33
40
|
];
|
|
34
41
|
}),
|
|
35
42
|
);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { Agent, Plan } from '@dxos/assistant-toolkit';
|
|
9
9
|
import { Filter, Obj, Ref } from '@dxos/echo';
|
|
10
10
|
import { useQuery } from '@dxos/react-client/echo';
|
|
11
11
|
import { useClientStory, withClientProvider } from '@dxos/react-client/testing';
|
|
@@ -53,7 +53,6 @@ const meta = {
|
|
|
53
53
|
space.db.add(
|
|
54
54
|
Obj.make(Agent.Agent, {
|
|
55
55
|
instructions: Ref.make(Text.make()),
|
|
56
|
-
plan: Ref.make(Plan.makePlan({ tasks: [] })),
|
|
57
56
|
artifacts: [{ name: 'Organization', data: Ref.make(organization) }],
|
|
58
57
|
subscriptions: [],
|
|
59
58
|
}),
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Atom } from '@effect-atom/atom';
|
|
5
6
|
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
7
|
import * as Array from 'effect/Array';
|
|
7
8
|
import * as Option from 'effect/Option';
|
|
8
9
|
import React, { type PropsWithChildren, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
9
10
|
|
|
10
|
-
import {
|
|
11
|
+
import { Plan } from '@dxos/assistant-toolkit';
|
|
11
12
|
import { Event } from '@dxos/async';
|
|
12
13
|
import { getSpace } from '@dxos/client/echo';
|
|
13
|
-
import { type Database,
|
|
14
|
-
import { useQuery } from '@dxos/react-client/echo';
|
|
14
|
+
import { type Database, Filter, Obj, Query } from '@dxos/echo';
|
|
15
|
+
import { useObject, useQuery } from '@dxos/react-client/echo';
|
|
15
16
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
16
17
|
import { Button, Toast, composable, composableProps, useTranslation } from '@dxos/react-ui';
|
|
17
18
|
import { type MarkdownStreamController } from '@dxos/react-ui-markdown';
|
|
@@ -38,7 +39,6 @@ import { type ChatEvent } from './events';
|
|
|
38
39
|
|
|
39
40
|
type ChatRootProps = PropsWithChildren<
|
|
40
41
|
Pick<ChatContextValue, 'chat' | 'processor'> & {
|
|
41
|
-
feed?: Feed.Feed;
|
|
42
42
|
/** Fallback database when the chat is transient (not yet persisted). */
|
|
43
43
|
db?: Database.Database;
|
|
44
44
|
onEvent?: (event: ChatEvent) => void;
|
|
@@ -50,7 +50,7 @@ type ChatRootProps = PropsWithChildren<
|
|
|
50
50
|
}
|
|
51
51
|
>;
|
|
52
52
|
|
|
53
|
-
const ChatRoot = ({ children, chat,
|
|
53
|
+
const ChatRoot = ({ children, chat, processor, db: dbFallback, onEvent, onSubmit, ...props }: ChatRootProps) => {
|
|
54
54
|
const [debug, setDebug] = useState(false);
|
|
55
55
|
const streaming = useAtomValue(processor.streaming);
|
|
56
56
|
const active = useAtomValue(processor.active);
|
|
@@ -60,6 +60,10 @@ const ChatRoot = ({ children, chat, feed, processor, db: dbFallback, onEvent, on
|
|
|
60
60
|
// the message query and context controls operate before the chat is persisted.
|
|
61
61
|
const db = (chat && Obj.getDatabase(chat)) || dbFallback;
|
|
62
62
|
|
|
63
|
+
// Reactive subscription — re-renders when the feed ref resolves. Direct `.target` reads are not reactive.
|
|
64
|
+
const [feedSnapshot] = useObject(chat?.feed);
|
|
65
|
+
const feed = Obj.getReactiveOrUndefined(feedSnapshot);
|
|
66
|
+
|
|
63
67
|
// Event sink.
|
|
64
68
|
const event = useMemo(() => new Event<ChatEvent>(), []);
|
|
65
69
|
|
|
@@ -334,13 +338,27 @@ type ChatTaskListProps = {
|
|
|
334
338
|
|
|
335
339
|
const ChatTaskList = composable<HTMLDivElement, ChatTaskListProps>(({ plan: planProp, ...props }, forwardedRef) => {
|
|
336
340
|
const { chat } = useChatContext(CHAT_TASK_LIST_NAME);
|
|
337
|
-
|
|
338
|
-
const
|
|
339
|
-
|
|
341
|
+
|
|
342
|
+
const plan = useAtomValue(
|
|
343
|
+
useMemo(
|
|
344
|
+
() =>
|
|
345
|
+
Atom.make(
|
|
346
|
+
(get) =>
|
|
347
|
+
planProp ??
|
|
348
|
+
Option.fromNullable(chat).pipe(
|
|
349
|
+
Option.map((_) => get(Obj.atom(_))),
|
|
350
|
+
Option.flatMapNullable((_) => _?.plan?.atom),
|
|
351
|
+
Option.map(get),
|
|
352
|
+
Option.getOrUndefined,
|
|
353
|
+
),
|
|
354
|
+
),
|
|
355
|
+
[chat, planProp],
|
|
356
|
+
),
|
|
357
|
+
);
|
|
340
358
|
const space = chat ? getSpace(chat) : undefined;
|
|
341
359
|
const traceMessages = useTraceMessages(space);
|
|
342
360
|
const conversationId = chat?.feed?.target?.id;
|
|
343
|
-
if (!plan) {
|
|
361
|
+
if (!plan || !(plan.tasks?.length ?? 0)) {
|
|
344
362
|
return null;
|
|
345
363
|
}
|
|
346
364
|
|
|
@@ -372,4 +390,4 @@ export const Chat = {
|
|
|
372
390
|
TaskList: ChatTaskList,
|
|
373
391
|
};
|
|
374
392
|
|
|
375
|
-
export type {
|
|
393
|
+
export type { ChatContentProps, ChatEvent, ChatPromptProps, ChatRootProps, ChatThreadProps, ChatToolbarProps };
|