@dxos/plugin-assistant 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/AgentArticle-5XDDEXMP.mjs +169 -0
- package/dist/lib/neutral/AgentArticle-5XDDEXMP.mjs.map +7 -0
- package/dist/lib/neutral/AgentProperties-CNH4JMDZ.mjs +100 -0
- package/dist/lib/neutral/AgentProperties-CNH4JMDZ.mjs.map +7 -0
- package/dist/lib/neutral/AssistantPlugin.mjs +10 -0
- package/dist/lib/neutral/AssistantPlugin.node.mjs +46 -0
- package/dist/lib/neutral/AssistantPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/AssistantPlugin.workerd.mjs +40 -0
- package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/BlueprintArticle-U7LUBFOS.mjs +27 -0
- package/dist/lib/neutral/BlueprintArticle-U7LUBFOS.mjs.map +7 -0
- package/dist/lib/neutral/ChatArticle-WVAFZPVI.mjs +8 -0
- package/dist/lib/neutral/ChatCompanion-DFRMRUK3.mjs +133 -0
- package/dist/lib/neutral/ChatCompanion-DFRMRUK3.mjs.map +7 -0
- package/dist/lib/neutral/ChatDialog-QKZLG7SQ.mjs +72 -0
- package/dist/lib/neutral/ChatDialog-QKZLG7SQ.mjs.map +7 -0
- package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs +28 -0
- package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs.map +7 -0
- package/dist/lib/neutral/RoutineArticle-H7ECM7AH.mjs +116 -0
- package/dist/lib/neutral/RoutineArticle-H7ECM7AH.mjs.map +7 -0
- package/dist/lib/neutral/RoutineList-CLDXGQUD.mjs +48 -0
- package/dist/lib/neutral/RoutineList-CLDXGQUD.mjs.map +7 -0
- package/dist/lib/neutral/TracePanel-C77SPEIS.mjs +672 -0
- package/dist/lib/neutral/TracePanel-C77SPEIS.mjs.map +7 -0
- package/dist/lib/neutral/TriggerStatus-WTFYUIG5.mjs +92 -0
- package/dist/lib/neutral/TriggerStatus-WTFYUIG5.mjs.map +7 -0
- package/dist/lib/neutral/ai-service-GJXMI5OI.mjs +22 -0
- package/dist/lib/neutral/ai-service-GJXMI5OI.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-5QBICPYP.mjs +200 -0
- package/dist/lib/neutral/app-graph-builder-5QBICPYP.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs +32 -0
- package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/capabilities/index.mjs +35 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-3FIV362Z.mjs +8 -0
- package/dist/lib/neutral/chunk-3FIV362Z.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4CQZCMRP.mjs +25 -0
- package/dist/lib/neutral/chunk-4CQZCMRP.mjs.map +7 -0
- package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-5H6UJHLF.mjs} +4 -5
- package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ITJX2YZZ.mjs +98 -0
- package/dist/lib/neutral/chunk-ITJX2YZZ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-IZQWGJNG.mjs +380 -0
- package/dist/lib/neutral/chunk-IZQWGJNG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SLIPV6NN.mjs +106 -0
- package/dist/lib/neutral/chunk-SLIPV6NN.mjs.map +7 -0
- package/dist/lib/neutral/companion-chat-provisioner-2Y6PRSDK.mjs +116 -0
- package/dist/lib/neutral/companion-chat-provisioner-2Y6PRSDK.mjs.map +7 -0
- package/dist/lib/{browser/chunk-VK53MITK.mjs → neutral/components/index.mjs} +139 -141
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +29 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/{browser/create-chat-E2ZLVTLP.mjs → neutral/create-chat-QQZURUBW.mjs} +10 -12
- package/dist/lib/neutral/create-chat-QQZURUBW.mjs.map +7 -0
- package/dist/lib/neutral/create-object-UZCJCPWM.mjs +93 -0
- package/dist/lib/neutral/create-object-UZCJCPWM.mjs.map +7 -0
- package/dist/lib/neutral/edge-model-resolver-XDNBZ3US.mjs +21 -0
- package/dist/lib/neutral/edge-model-resolver-XDNBZ3US.mjs.map +7 -0
- package/dist/lib/{browser/ensure-companion-chat-7GDMXSQW.mjs → neutral/ensure-companion-chat-5S4LZM2H.mjs} +9 -16
- package/dist/lib/neutral/ensure-companion-chat-5S4LZM2H.mjs.map +7 -0
- package/dist/lib/{browser/chunk-M55MBYG7.mjs → neutral/hooks/index.mjs} +106 -111
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +32 -0
- package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +24 -0
- package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +7 -0
- package/dist/lib/neutral/markdown-KTBFOMFM.mjs +110 -0
- package/dist/lib/neutral/markdown-KTBFOMFM.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +12 -0
- package/dist/lib/neutral/migrations-7DEMVBOG.mjs +28 -0
- package/dist/lib/neutral/migrations-7DEMVBOG.mjs.map +7 -0
- package/dist/lib/{browser/on-create-space-4J3KTNAJ.mjs → neutral/on-create-space-Q2R7OSP6.mjs} +4 -7
- package/dist/lib/neutral/on-create-space-Q2R7OSP6.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-SF36MOB5.mjs +13 -0
- package/dist/lib/neutral/operation-handler-SF36MOB5.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-T4R65UJU.mjs +174 -0
- package/dist/lib/neutral/react-surface-T4R65UJU.mjs.map +7 -0
- package/dist/lib/{browser/resolve-navigation-targets-3ZPQE6SZ.mjs → neutral/resolve-navigation-targets-VXBSWV5L.mjs} +3 -5
- package/dist/lib/neutral/resolve-navigation-targets-VXBSWV5L.mjs.map +7 -0
- package/dist/lib/{browser/run-prompt-in-new-chat-AA3KPBDN.mjs → neutral/run-prompt-in-new-chat-VJXXZ6SI.mjs} +16 -19
- package/dist/lib/neutral/run-prompt-in-new-chat-VJXXZ6SI.mjs.map +7 -0
- package/dist/lib/{browser/set-current-chat-P4VHI3YF.mjs → neutral/set-current-chat-ZFDCYK5I.mjs} +4 -10
- package/dist/lib/neutral/set-current-chat-ZFDCYK5I.mjs.map +7 -0
- package/dist/lib/neutral/settings-W4BLWQ53.mjs +28 -0
- package/dist/lib/neutral/settings-W4BLWQ53.mjs.map +7 -0
- package/dist/lib/neutral/state-H3G7QCU6.mjs +28 -0
- package/dist/lib/neutral/state-H3G7QCU6.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +8 -0
- package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs +21 -0
- package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs.map +7 -0
- package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs +14 -0
- package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/translations.mjs +5 -2
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +20 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/{browser/update-chat-name-VWKNUON7.mjs → neutral/update-chat-name-ENXRUMDJ.mjs} +3 -5
- package/dist/lib/neutral/update-chat-name-ENXRUMDJ.mjs.map +7 -0
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -1
- package/dist/types/src/AssistantPlugin.workerd.d.ts +4 -0
- package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +31 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +27 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +2 -1
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.d.ts +11 -5
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +2 -2
- package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +2 -2
- package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +2 -3
- package/dist/types/src/components/ChatThread/ChatThread.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/StatusWidget.d.ts +2 -15
- package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -1
- package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -1
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.d.ts +10 -0
- package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -0
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts +16 -0
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -0
- package/dist/types/src/components/TaskList/index.d.ts +2 -0
- package/dist/types/src/components/TaskList/index.d.ts.map +1 -0
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -1
- package/dist/types/src/containers/{ChatContainer/ChatContainer.d.ts → ChatArticle/ChatArticle.d.ts} +3 -3
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -0
- package/dist/types/src/containers/ChatArticle/index.d.ts +2 -0
- package/dist/types/src/containers/ChatArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
- package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts +6 -0
- package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +1 -0
- package/dist/types/src/containers/PlanArticle/index.d.ts +2 -0
- package/dist/types/src/containers/PlanArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts +15 -0
- package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/execution-graph.d.ts +11 -2
- package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +1 -1
- package/dist/types/src/containers/TracePanel/span-tree.d.ts +73 -0
- package/dist/types/src/containers/TracePanel/span-tree.d.ts.map +1 -0
- package/dist/types/src/containers/TracePanel/span-tree.test.d.ts +2 -0
- package/dist/types/src/containers/TracePanel/span-tree.test.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +4 -3
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/feed-logger.d.ts +13 -0
- package/dist/types/src/feed-logger.d.ts.map +1 -0
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts +3 -3
- package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatServices.d.ts +1 -1
- package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
- package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextObjects.d.ts +2 -2
- package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/operations/create-chat.d.ts +2 -2
- package/dist/types/src/operations/create-chat.d.ts.map +1 -1
- package/dist/types/src/operations/ensure-companion-chat.d.ts +2 -2
- package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +0 -1
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/on-create-space.d.ts +2 -2
- package/dist/types/src/operations/on-create-space.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/operations/set-current-chat.d.ts +2 -2
- package/dist/types/src/operations/set-current-chat.d.ts.map +1 -1
- package/dist/types/src/operations/toggle-trace-panel-debug.d.ts +5 -0
- package/dist/types/src/operations/toggle-trace-panel-debug.d.ts.map +1 -0
- package/dist/types/src/operations/update-chat-name.d.ts +2 -2
- package/dist/types/src/operations/update-chat-name.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/processor/processor.d.ts +11 -11
- package/dist/types/src/processor/processor.d.ts.map +1 -1
- package/dist/types/src/testing/test-generator.d.ts +2 -3
- package/dist/types/src/testing/test-generator.d.ts.map +1 -1
- package/dist/types/src/testing/test-sequence.d.ts +3 -3
- package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts +2 -0
- package/dist/types/src/testing.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Assistant.d.ts +1 -0
- package/dist/types/src/types/Assistant.d.ts.map +1 -1
- package/dist/types/src/types/AssistantCapabilities.d.ts +30 -0
- package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/AssistantEvents.d.ts +3 -0
- package/dist/types/src/types/AssistantEvents.d.ts.map +1 -0
- package/dist/types/src/{operations/definitions.d.ts → types/AssistantOperation.d.ts} +10 -6
- package/dist/types/src/types/AssistantOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +1 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/util/suggestions.d.ts +9 -0
- package/dist/types/src/util/suggestions.d.ts.map +1 -0
- package/dist/types/src/util/suggestions.test.d.ts +2 -0
- package/dist/types/src/util/suggestions.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +152 -128
- package/src/AssistantPlugin.node.ts +7 -88
- package/src/AssistantPlugin.test.ts +3 -3
- package/src/AssistantPlugin.ts +126 -0
- package/src/AssistantPlugin.workerd.ts +41 -0
- package/src/blueprints/assistant/blueprint.ts +1 -1
- package/src/capabilities/app-graph-builder.ts +48 -9
- package/src/capabilities/companion-chat-provisioner.ts +4 -5
- package/src/capabilities/create-object.ts +107 -0
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/markdown.ts +2 -2
- package/src/capabilities/migrations.ts +3 -3
- package/src/capabilities/react-surface.tsx +15 -7
- package/src/components/Chat/Chat.tsx +35 -5
- package/src/components/ChatPrompt/ChatMcpErrors.tsx +1 -1
- package/src/components/ChatPrompt/ChatOptions.stories.tsx +4 -4
- package/src/components/ChatPrompt/ChatOptions.tsx +12 -11
- package/src/components/ChatPrompt/ChatPrompt.tsx +3 -3
- package/src/components/ChatPrompt/ChatReferences.tsx +3 -3
- package/src/components/ChatPrompt/ChatStatus.tsx +1 -1
- package/src/components/ChatPrompt/ChatStatusIndicator.tsx +1 -1
- package/src/components/ChatThread/Anchor.stories.tsx +3 -3
- package/src/components/ChatThread/ChatThread.stories.tsx +25 -29
- package/src/components/ChatThread/ChatThread.tsx +1 -1
- package/src/components/ChatThread/registry.tsx +8 -4
- package/src/components/ChatThread/sync.test.ts +4 -6
- package/src/components/ChatThread/widgets/ReasoningWidget.ts +2 -2
- package/src/components/ChatThread/widgets/StatusWidget.ts +3 -83
- package/src/components/ChatThread/widgets/SummaryWidget.tsx +1 -3
- package/src/components/ProcessTree/ProcessTree.tsx +2 -1
- package/src/components/TaskList/TaskList.stories.tsx +44 -0
- package/src/components/TaskList/TaskList.tsx +45 -0
- package/src/{cli → components/TaskList}/index.ts +1 -1
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +1 -1
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -6
- package/src/components/TemplateEditor/TemplateForm.tsx +48 -69
- package/src/components/Toolbox/Toolbox.stories.tsx +4 -4
- package/src/components/Toolbox/Toolbox.tsx +2 -2
- package/src/components/index.ts +1 -0
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +7 -7
- package/src/containers/AgentArticle/AgentArticle.tsx +11 -7
- package/src/containers/AgentProperties/AgentProperties.stories.tsx +4 -4
- package/src/containers/AgentProperties/AgentProperties.tsx +4 -4
- package/src/containers/{ChatContainer/ChatContainer.tsx → ChatArticle/ChatArticle.tsx} +11 -9
- package/src/containers/ChatArticle/index.ts +5 -0
- package/src/containers/ChatCompanion/ChatCompanion.tsx +20 -29
- package/src/containers/PlanArticle/PlanArticle.tsx +33 -0
- package/src/containers/PlanArticle/index.ts +5 -0
- package/src/containers/RoutineArticle/RoutineArticle.stories.tsx +75 -0
- package/src/containers/RoutineArticle/RoutineArticle.tsx +74 -24
- package/src/containers/RoutineList/RoutineList.stories.tsx +3 -3
- package/src/containers/RoutineList/RoutineList.tsx +3 -3
- package/src/containers/TracePanel/TracePanel.stories.tsx +33 -26
- package/src/containers/TracePanel/TracePanel.tsx +72 -33
- package/src/containers/TracePanel/dxn-extractor.ts +7 -7
- package/src/containers/TracePanel/execution-graph.test.ts +218 -213
- package/src/containers/TracePanel/execution-graph.ts +316 -271
- package/src/containers/TracePanel/span-tree.test.ts +166 -0
- package/src/containers/TracePanel/span-tree.ts +214 -0
- package/src/containers/index.ts +4 -3
- package/src/{queue-logger.ts → feed-logger.ts} +37 -27
- package/src/hooks/useBlueprintRegistry.ts +12 -6
- package/src/hooks/useChatProcessor.ts +3 -3
- package/src/hooks/useChatServices.ts +1 -1
- package/src/hooks/useChatToolbarActions.ts +86 -88
- package/src/hooks/useContextBinder.ts +4 -4
- package/src/hooks/useContextObjects.ts +2 -2
- package/src/index.ts +2 -9
- package/src/operations/create-chat.ts +16 -11
- package/src/operations/ensure-companion-chat.ts +47 -45
- package/src/operations/index.ts +1 -2
- package/src/operations/on-create-space.ts +3 -3
- package/src/operations/prompt.test.ts +5 -5
- package/src/operations/resolve-navigation-targets.ts +2 -2
- package/src/operations/run-prompt-in-new-chat.ts +85 -84
- package/src/operations/set-current-chat.ts +3 -4
- package/src/operations/toggle-trace-panel-debug.ts +27 -0
- package/src/operations/update-chat-name.ts +2 -2
- package/src/plugin.ts +11 -0
- package/src/processor/processor.test.ts +1 -1
- package/src/processor/processor.ts +15 -15
- package/src/testing/test-generator.test.ts +41 -52
- package/src/testing/test-generator.ts +174 -189
- package/src/testing/test-sequence.ts +3 -3
- package/src/testing/trace-timeline.conversations.json +1 -1
- package/src/testing/trace-timeline.test.ts +3 -5
- package/src/testing.ts +7 -0
- package/src/translations.ts +5 -2
- package/src/types/Assistant.ts +2 -1
- package/src/types/AssistantCapabilities.ts +35 -0
- package/src/types/AssistantEvents.ts +11 -0
- package/src/{operations/definitions.ts → types/AssistantOperation.ts} +15 -0
- package/src/types/Settings.ts +6 -0
- package/src/types/index.ts +5 -2
- package/src/util/suggestions.test.ts +52 -0
- package/src/util/suggestions.ts +42 -0
- package/dist/lib/browser/blueprints/index.mjs.map +0 -7
- package/dist/lib/browser/chunk-DVOOFAWU.mjs +0 -175
- package/dist/lib/browser/chunk-DVOOFAWU.mjs.map +0 -7
- package/dist/lib/browser/chunk-M55MBYG7.mjs.map +0 -7
- package/dist/lib/browser/chunk-SEMCG4ZK.mjs +0 -195
- package/dist/lib/browser/chunk-SEMCG4ZK.mjs.map +0 -7
- package/dist/lib/browser/chunk-VK53MITK.mjs.map +0 -7
- package/dist/lib/browser/cli/index.mjs +0 -73
- package/dist/lib/browser/cli/index.mjs.map +0 -7
- package/dist/lib/browser/components/index.mjs +0 -20
- package/dist/lib/browser/create-chat-E2ZLVTLP.mjs.map +0 -7
- package/dist/lib/browser/ensure-companion-chat-7GDMXSQW.mjs.map +0 -7
- package/dist/lib/browser/hooks/index.mjs +0 -39
- package/dist/lib/browser/index.mjs +0 -84
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/on-create-space-4J3KTNAJ.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -13
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/resolve-navigation-targets-3ZPQE6SZ.mjs.map +0 -7
- package/dist/lib/browser/run-prompt-in-new-chat-AA3KPBDN.mjs.map +0 -7
- package/dist/lib/browser/set-current-chat-P4VHI3YF.mjs.map +0 -7
- package/dist/lib/browser/translations.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -18
- package/dist/lib/browser/update-chat-name-VWKNUON7.mjs.map +0 -7
- package/dist/lib/node-esm/AssistantSettings-23A5IMHS.mjs +0 -41
- package/dist/lib/node-esm/AssistantSettings-23A5IMHS.mjs.map +0 -7
- package/dist/lib/node-esm/blueprints/index.mjs +0 -32
- package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FWC3ZGPH.mjs +0 -933
- package/dist/lib/node-esm/chunk-FWC3ZGPH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-JKEB3NFZ.mjs +0 -2302
- package/dist/lib/node-esm/chunk-JKEB3NFZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MBDVPB4V.mjs +0 -176
- package/dist/lib/node-esm/chunk-MBDVPB4V.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XAFVSEUJ.mjs +0 -196
- package/dist/lib/node-esm/chunk-XAFVSEUJ.mjs.map +0 -7
- package/dist/lib/node-esm/cli/index.mjs +0 -74
- package/dist/lib/node-esm/cli/index.mjs.map +0 -7
- package/dist/lib/node-esm/components/index.mjs +0 -21
- package/dist/lib/node-esm/create-chat-UQQ3542N.mjs +0 -74
- package/dist/lib/node-esm/create-chat-UQQ3542N.mjs.map +0 -7
- package/dist/lib/node-esm/ensure-companion-chat-LVCPD4DJ.mjs +0 -66
- package/dist/lib/node-esm/ensure-companion-chat-LVCPD4DJ.mjs.map +0 -7
- package/dist/lib/node-esm/hooks/index.mjs +0 -40
- package/dist/lib/node-esm/index.mjs +0 -85
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/on-create-space-M63UBTTT.mjs +0 -23
- package/dist/lib/node-esm/on-create-space-M63UBTTT.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -14
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/resolve-navigation-targets-HO77CAFT.mjs +0 -23
- package/dist/lib/node-esm/resolve-navigation-targets-HO77CAFT.mjs.map +0 -7
- package/dist/lib/node-esm/run-prompt-in-new-chat-RIRYYYPK.mjs +0 -107
- package/dist/lib/node-esm/run-prompt-in-new-chat-RIRYYYPK.mjs.map +0 -7
- package/dist/lib/node-esm/set-current-chat-Z7GJ52VX.mjs +0 -55
- package/dist/lib/node-esm/set-current-chat-Z7GJ52VX.mjs.map +0 -7
- package/dist/lib/node-esm/translations.mjs +0 -173
- package/dist/lib/node-esm/translations.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -19
- package/dist/lib/node-esm/update-chat-name-GV4HX32Z.mjs +0 -57
- package/dist/lib/node-esm/update-chat-name-GV4HX32Z.mjs.map +0 -7
- package/dist/types/src/cli/index.d.ts +0 -2
- package/dist/types/src/cli/index.d.ts.map +0 -1
- package/dist/types/src/cli/plugin.d.ts +0 -10
- package/dist/types/src/cli/plugin.d.ts.map +0 -1
- package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
- package/dist/types/src/containers/ChatContainer/index.d.ts +0 -2
- package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/queue-logger.d.ts +0 -11
- package/dist/types/src/queue-logger.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -32
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/dist/types/src/types/events.d.ts +0 -5
- package/dist/types/src/types/events.d.ts.map +0 -1
- package/src/AssistantPlugin.tsx +0 -238
- package/src/cli/plugin.ts +0 -83
- package/src/containers/ChatContainer/index.ts +0 -5
- package/src/types/capabilities.ts +0 -35
- package/src/types/events.ts +0 -11
- /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/AssistantPlugin.mjs.map} +0 -0
- /package/dist/lib/{browser → neutral}/AssistantSettings-GG52BLKS.mjs +0 -0
- /package/dist/lib/{browser → neutral}/AssistantSettings-GG52BLKS.mjs.map +0 -0
- /package/dist/lib/{browser/components/index.mjs.map → neutral/ChatArticle-WVAFZPVI.mjs.map} +0 -0
- /package/dist/lib/{browser/hooks → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/components → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
- /package/dist/lib/{node-esm/hooks → neutral/operations}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/types/index.mjs.map → neutral/testing.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/Assistant.ts", "../../../src/types/Settings.ts", "../../../src/types/AssistantOperation.ts", "../../../src/types/AssistantCapabilities.ts", "../../../src/types/AssistantEvents.ts", "../../../src/types/service.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\n// Re-export Chat schema for backward compatibility.\nimport { Chat as ChatModule } from '@dxos/assistant-toolkit';\nexport const Chat = ChatModule.Chat;\nexport type Chat = ChatModule.Chat;\n\n// Re-export Settings as merged const/type (not as namespace).\nimport * as SettingsModule from './Settings';\nexport const Settings = SettingsModule.Settings;\nexport type Settings = SettingsModule.Settings;\n\nexport const ChatViews = SettingsModule.ChatViews;\nexport const ChatView = SettingsModule.ChatView;\nexport type ChatView = SettingsModule.ChatView;\n\nexport const ModelProviders = SettingsModule.ModelProviders;\nexport const ModelProvider = SettingsModule.ModelProvider;\nexport type ModelProvider = SettingsModule.ModelProvider;\n\nexport const ModelDefaults = SettingsModule.ModelDefaults;\nexport type ModelDefaults = SettingsModule.ModelDefaults;\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { getLiteralValues } from '@dxos/effect';\n\nexport const ModelProvider = Schema.Union(\n Schema.Literal('edge').annotations({ title: 'DXOS' }),\n Schema.Literal('ollama').annotations({ title: 'Ollama' }),\n Schema.Literal('lmstudio').annotations({ title: 'LM Studio' }),\n);\nexport type ModelProvider = Schema.Schema.Type<typeof ModelProvider>;\nexport const ModelProviders = getLiteralValues(ModelProvider);\n\nexport const ChatView = Schema.Union(\n Schema.Literal('normal').annotations({ title: 'Normal' }),\n Schema.Literal('summary').annotations({ title: 'Summary' }),\n Schema.Literal('thinking').annotations({ title: 'Thinking' }),\n Schema.Literal('debug').annotations({ title: 'Debug' }),\n);\nexport type ChatView = Schema.Schema.Type<typeof ChatView>;\nexport const ChatViews = getLiteralValues(ChatView);\n\nexport const ModelDefaults = Schema.mutable(\n Schema.Struct({\n edge: Schema.optional(\n Schema.String.annotations({\n title: 'Remote language model',\n description: 'Choose the remote language model used for AI requests.',\n }),\n ),\n ollama: Schema.optional(\n Schema.String.annotations({\n title: 'Ollama language model',\n description: 'Choose the locally hosted Ollama model for AI requests.',\n }),\n ),\n lmstudio: Schema.optional(\n Schema.String.annotations({\n title: 'LM Studio language model',\n description: 'Choose the locally hosted LM Studio model for AI requests.',\n }),\n ),\n }),\n);\nexport type ModelDefaults = Schema.Schema.Type<typeof ModelDefaults>;\n\nexport const Settings = Schema.mutable(\n Schema.Struct({\n customPrompts: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Use custom prompts',\n description: 'Allow the assistant to use custom prompts defined in your spaces.',\n }),\n ),\n chatView: Schema.optional(\n ChatView.annotations({\n title: 'Chat view',\n description:\n 'Controls which message blocks are shown in the chat: normal hides reasoning, thinking shows reasoning, debug shows raw blocks, summary shows only conversational text.',\n }),\n ),\n modelProvider: Schema.optional(\n ModelProvider.annotations({\n title: 'LLM provider',\n description: 'Select which language model service to use for AI responses.',\n }),\n ),\n modelDefaults: Schema.optional(ModelDefaults),\n tracePanelDebug: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Trace panel debug',\n description: 'Show the raw span tree as JSON in the trace panel instead of the commit graph.',\n }),\n ),\n }),\n);\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiService } from '@dxos/ai';\nimport { Capability } from '@dxos/app-framework';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Routine, Operation } from '@dxos/compute';\nimport { Collection, Database, DXN, Feed, Obj, Ref } from '@dxos/echo';\n\nimport { meta } from '#meta';\n\nconst ASSISTANT_OPERATION = `${meta.id}.operation`;\n\nexport const OnCreateSpace = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n }),\n output: Schema.Void,\n});\n\nexport const CreateChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.create-chat`, name: 'Create Chat' },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n name: Schema.optional(Schema.String),\n /** If false, chat is created in-memory only and not added to space. Defaults to true. */\n addToSpace: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n object: Chat.Chat,\n }),\n});\n\nexport const UpdateChatName = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.update-chat-name`, name: 'Update Chat Name' },\n services: [Database.Service, Feed.FeedService, AiService.AiService],\n input: Schema.Struct({\n chat: Chat.Chat,\n }),\n output: Schema.Void,\n});\n\nexport const SetCurrentChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.set-current-chat`, name: 'Set Current Chat' },\n services: [Capability.Service],\n input: Schema.Struct({\n companionTo: Obj.Unknown,\n chat: Chat.Chat.pipe(Schema.optional),\n }),\n output: Schema.Void,\n});\n\nexport const RunPromptInNewChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.run-prompt-in-new-chat`, name: 'Run Prompt In New Chat' },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n /** Context objects to bind to the new chat. */\n objects: Schema.optional(Schema.Array(Obj.Unknown)),\n /** Blueprint keys to look up and bind to the new chat. */\n blueprints: Schema.optional(Schema.Array(Schema.String)),\n /** Raw instructions or an existing Routine object reference. */\n prompt: Schema.Union(Schema.String, Ref.Ref(Routine.Routine)),\n /**\n * When true, skips opening the chat: runs the Agent prompt operation against the new chat via the compute runtime (traced).\n */\n background: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n object: Chat.Chat,\n }),\n});\n\nconst NavigationTargetSchema = Schema.Struct({\n path: Schema.String.annotations({ description: 'Navigation path to use with the Open operation.' }),\n label: Schema.String.annotations({ description: 'Human-readable label.' }),\n type: Schema.String.annotations({ description: 'Object type.' }),\n});\n\nexport const ResolveNavigationTargets = Operation.make({\n meta: {\n key: `${ASSISTANT_OPERATION}.resolve-navigation-targets`,\n name: 'Resolve navigation targets',\n description:\n 'Resolve navigation targets within the application. The returned paths can be used with the Open operation. Without a query, returns pages that can be navigated to.',\n },\n input: Schema.Struct({\n query: Schema.optional(\n Schema.Struct({\n dxn: DXN.Schema.pipe(Schema.optional),\n }),\n ),\n }),\n output: Schema.Struct({\n targets: Schema.Array(NavigationTargetSchema),\n }),\n services: [Capability.Service],\n});\n\nexport const EnsureCompanionChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.ensure-companion-chat`, name: 'Ensure Companion Chat' },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n companionTo: Obj.Unknown,\n }),\n output: Schema.Struct({\n chat: Chat.Chat,\n /** Whether the returned chat was already persisted in the space. */\n persisted: Schema.Boolean,\n }),\n});\n\nexport const BlueprintForm = Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\nexport const ToggleTracePanelDebug = Operation.make({\n meta: {\n key: `${ASSISTANT_OPERATION}.toggle-trace-panel-debug`,\n name: 'Toggle trace panel debug',\n description: 'Toggle trace panel between commit graph and raw span tree JSON.',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Obj } from '@dxos/echo';\n\nimport { meta } from '#meta';\n\nimport * as Assistant from './Assistant';\n\nexport const Settings = Capability.make<Atom.Writable<Assistant.Settings>>(`${meta.id}.capability.settings`);\n\nexport const StateSchema = Schema.mutable(\n Schema.Struct({\n /** Map of primary object dxn to current chat dxn. */\n currentChat: Schema.Record({ key: Schema.String, value: Schema.UndefinedOr(Schema.String) }),\n /** Map of chat object path to prompt text to auto-submit when the chat opens. */\n pendingPrompts: Schema.Record({ key: Schema.String, value: Schema.UndefinedOr(Schema.String) }),\n }),\n);\n\nexport type AssistantState = Schema.Schema.Type<typeof StateSchema>;\n\nexport const State = Capability.make<Atom.Writable<AssistantState>>(`${meta.id}.capability.state`);\n\n/** Session-scoped cache of transient (not yet persisted) companion chats keyed by companion DXN string. */\nexport const CompanionChatCache = Capability.make<Atom.Writable<Record<string, Obj.Unknown | undefined>>>(\n `${meta.id}.capability.companion-chat-cache`,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nexport const SetupAiServiceProviders = ActivationEvent.make(`${meta.id}.event.setup-ai-service-providers`);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/compute';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Ref, Type } from '@dxos/echo';\n\n// TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Ref.Ref(Operation.PersistentOperation),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Ref.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(\n // Service types.\n ServiceInterfaceFunction,\n ServiceInterfaceWorkflow,\n ServiceInterfaceApi,\n) as any;\n\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport const ServiceType = Schema.Struct({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.service',\n version: '0.1.0',\n }),\n);\n\nexport interface ServiceType extends Schema.Schema.Type<typeof ServiceType> {}\n\n//\n// Service Registry\n//\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ChatView", "ChatViews", "ModelDefaults", "ModelProvider", "ModelProviders", "Settings", "Chat", "ChatModule", "Schema", "getLiteralValues", "ModelProvider", "Union", "Literal", "annotations", "title", "ModelProviders", "ChatView", "ChatViews", "ModelDefaults", "mutable", "Struct", "edge", "optional", "String", "description", "ollama", "lmstudio", "Settings", "customPrompts", "Boolean", "chatView", "modelProvider", "modelDefaults", "tracePanelDebug", "Chat", "ChatModule", "Settings", "ChatViews", "ChatView", "ModelProviders", "ModelProvider", "ModelDefaults", "Schema", "AiService", "Capability", "Chat", "SpaceSchema", "Routine", "Operation", "Collection", "Database", "DXN", "Feed", "Obj", "Ref", "meta", "ASSISTANT_OPERATION", "id", "OnCreateSpace", "make", "key", "name", "services", "Service", "input", "Struct", "space", "rootCollection", "output", "Void", "CreateChat", "db", "optional", "String", "addToSpace", "Boolean", "object", "UpdateChatName", "FeedService", "chat", "SetCurrentChat", "companionTo", "Unknown", "pipe", "RunPromptInNewChat", "objects", "Array", "blueprints", "prompt", "Union", "background", "NavigationTargetSchema", "path", "annotations", "description", "label", "type", "ResolveNavigationTargets", "query", "dxn", "targets", "EnsureCompanionChat", "persisted", "BlueprintForm", "ToggleTracePanelDebug", "state", "Settings", "Schema", "Capability", "meta", "make", "id", "StateSchema", "mutable", "Struct", "currentChat", "Record", "key", "String", "value", "UndefinedOr", "pendingPrompts", "State", "CompanionChatCache", "ActivationEvent", "meta", "SetupAiServiceProviders", "make", "id", "Schema", "Operation", "ComputeGraph", "Ref", "Type", "ApiAuthorizationKey", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "PersistentOperation", "ServiceInterfaceWorkflow", "workflow", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "pipe", "object", "typename", "version", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// src/containers/ChatArticle/ChatArticle.tsx
|
|
2
|
+
import React, { forwardRef, useEffect, useRef } from "react";
|
|
3
|
+
import { Capabilities } from "@dxos/app-framework";
|
|
4
|
+
import { useAtomCapability, useCapability } from "@dxos/app-framework/ui";
|
|
5
|
+
import { getSpace } from "@dxos/client/echo";
|
|
6
|
+
import { Panel } from "@dxos/react-ui";
|
|
7
|
+
import { getParentId } from "@dxos/react-ui-attention";
|
|
8
|
+
import { Chat as ChatComponent } from "#components";
|
|
9
|
+
import { useBlueprintRegistry, useChatProcessor, useChatServices, useOnline, usePresets } from "#hooks";
|
|
10
|
+
import { AssistantCapabilities } from "#types";
|
|
11
|
+
var ChatArticle = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
|
|
12
|
+
const { role, attendableId, subject: chat, space: spaceProp, companionTo, onEvent } = props;
|
|
13
|
+
const parentId = attendableId ? getParentId(attendableId) : void 0;
|
|
14
|
+
const space = spaceProp ?? getSpace(chat);
|
|
15
|
+
const settings = useAtomCapability(AssistantCapabilities.Settings);
|
|
16
|
+
const runtime = useChatServices({
|
|
17
|
+
id: space?.id
|
|
18
|
+
});
|
|
19
|
+
const [online, setOnline] = useOnline();
|
|
20
|
+
const { preset, ...chatProps } = usePresets(online);
|
|
21
|
+
const blueprintRegistry = useBlueprintRegistry();
|
|
22
|
+
const processor = useChatProcessor({
|
|
23
|
+
space,
|
|
24
|
+
chat,
|
|
25
|
+
preset,
|
|
26
|
+
runtime,
|
|
27
|
+
blueprintRegistry,
|
|
28
|
+
settings
|
|
29
|
+
});
|
|
30
|
+
const registry = useCapability(Capabilities.AtomRegistry);
|
|
31
|
+
const stateAtom = useCapability(AssistantCapabilities.State);
|
|
32
|
+
const pendingSubmitted = useRef(false);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (!processor || !attendableId || pendingSubmitted.current) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const state = registry.get(stateAtom);
|
|
38
|
+
const pendingPrompt = state.pendingPrompts[attendableId];
|
|
39
|
+
if (pendingPrompt) {
|
|
40
|
+
pendingSubmitted.current = true;
|
|
41
|
+
registry.update(stateAtom, (current) => {
|
|
42
|
+
const { [attendableId]: _, ...rest } = current.pendingPrompts;
|
|
43
|
+
return {
|
|
44
|
+
...current,
|
|
45
|
+
pendingPrompts: rest
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
void processor.request({
|
|
49
|
+
message: pendingPrompt
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}, [
|
|
53
|
+
processor,
|
|
54
|
+
attendableId,
|
|
55
|
+
registry,
|
|
56
|
+
stateAtom
|
|
57
|
+
]);
|
|
58
|
+
const feedTarget = chat?.feed.target;
|
|
59
|
+
const view = chat?.view ?? settings.chatView;
|
|
60
|
+
if (!processor) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return /* @__PURE__ */ React.createElement(ChatComponent.Root, {
|
|
64
|
+
db: space?.db,
|
|
65
|
+
chat,
|
|
66
|
+
feed: feedTarget,
|
|
67
|
+
processor,
|
|
68
|
+
onEvent
|
|
69
|
+
}, /* @__PURE__ */ React.createElement(Panel.Root, {
|
|
70
|
+
role,
|
|
71
|
+
ref: forwardedRef
|
|
72
|
+
}, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
|
|
73
|
+
className: "bg-toolbar-surface"
|
|
74
|
+
}, /* @__PURE__ */ React.createElement(ChatComponent.Toolbar, {
|
|
75
|
+
classNames: "dx-document",
|
|
76
|
+
attendableId,
|
|
77
|
+
companionTo
|
|
78
|
+
})), /* @__PURE__ */ React.createElement(Panel.Content, null, /* @__PURE__ */ React.createElement(ChatComponent.Content, null, /* @__PURE__ */ React.createElement("div", {
|
|
79
|
+
className: "dx-container relative"
|
|
80
|
+
}, /* @__PURE__ */ React.createElement(ChatComponent.Thread, {
|
|
81
|
+
viewType: view
|
|
82
|
+
}), view !== "summary" && /* @__PURE__ */ React.createElement("div", {
|
|
83
|
+
className: "absolute bottom-2 left-0 right-0"
|
|
84
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
85
|
+
className: "dx-document px-4"
|
|
86
|
+
}, /* @__PURE__ */ React.createElement(ChatComponent.Status, {
|
|
87
|
+
classNames: "px-3 rounded-sm bg-group-surface"
|
|
88
|
+
})))), /* @__PURE__ */ React.createElement("div", {
|
|
89
|
+
className: "dx-document px-4 pb-4"
|
|
90
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
91
|
+
className: "flex flex-col items-center py-2 overflow-hidden"
|
|
92
|
+
}, /* @__PURE__ */ React.createElement(ChatComponent.TaskList, {
|
|
93
|
+
classNames: "max-h-[120px] border border-separator rounded-sm text-description"
|
|
94
|
+
})), /* @__PURE__ */ React.createElement(ChatComponent.Prompt, {
|
|
95
|
+
...chatProps,
|
|
96
|
+
outline: true,
|
|
97
|
+
preset: preset?.id,
|
|
98
|
+
online,
|
|
99
|
+
onOnlineChange: setOnline
|
|
100
|
+
}))))));
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
export {
|
|
104
|
+
ChatArticle
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=chunk-SLIPV6NN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/ChatArticle/ChatArticle.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { useAtomCapability, useCapability } from '@dxos/app-framework/ui';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Space, getSpace } from '@dxos/client/echo';\nimport { type Obj } from '@dxos/echo';\nimport { Panel } from '@dxos/react-ui';\nimport { getParentId } from '@dxos/react-ui-attention';\n\nimport { Chat as ChatComponent, type ChatRootProps } from '#components';\nimport { useBlueprintRegistry, useChatProcessor, useChatServices, useOnline, usePresets } from '#hooks';\nimport { type Assistant, AssistantCapabilities, type ChatType } from '#types';\n\nexport type ChatArticleProps = (\n | AppSurface.ObjectArticleProps<ChatType.Chat | undefined>\n | AppSurface.ObjectSectionProps<ChatType.Chat | undefined>\n) & {\n space?: Space;\n companionTo?: Obj.Unknown;\n} & Pick<ChatRootProps, 'onEvent'>;\n\nexport const ChatArticle = forwardRef<HTMLDivElement, ChatArticleProps>((props, forwardedRef) => {\n const { role, attendableId, subject: chat, space: spaceProp, companionTo, onEvent } = props;\n const parentId = attendableId ? getParentId(attendableId) : undefined;\n const space = spaceProp ?? getSpace(chat);\n const settings = useAtomCapability(AssistantCapabilities.Settings);\n const runtime = useChatServices({ id: space?.id });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const blueprintRegistry = useBlueprintRegistry();\n const processor = useChatProcessor({\n space,\n chat,\n preset,\n runtime,\n blueprintRegistry,\n settings,\n });\n\n const registry = useCapability(Capabilities.AtomRegistry);\n const stateAtom = useCapability(AssistantCapabilities.State);\n const pendingSubmitted = useRef(false);\n useEffect(() => {\n if (!processor || !attendableId || pendingSubmitted.current) {\n return;\n }\n\n const state = registry.get(stateAtom);\n const pendingPrompt = state.pendingPrompts[attendableId];\n if (pendingPrompt) {\n pendingSubmitted.current = true;\n registry.update(stateAtom, (current) => {\n const { [attendableId]: _, ...rest } = current.pendingPrompts;\n return { ...current, pendingPrompts: rest };\n });\n void processor.request({ message: pendingPrompt });\n }\n }, [processor, attendableId, registry, stateAtom]);\n\n const feedTarget = chat?.feed.target;\n const view = (chat?.view as Assistant.ChatView | undefined) ?? settings.chatView;\n\n if (!processor) {\n return null;\n }\n\n return (\n <ChatComponent.Root db={space?.db} chat={chat} feed={feedTarget} processor={processor} onEvent={onEvent}>\n <Panel.Root role={role} ref={forwardedRef}>\n <Panel.Toolbar className='bg-toolbar-surface'>\n <ChatComponent.Toolbar classNames='dx-document' attendableId={attendableId} companionTo={companionTo} />\n </Panel.Toolbar>\n <Panel.Content>\n <ChatComponent.Content>\n <div className='dx-container relative'>\n <ChatComponent.Thread viewType={view} />\n {view !== 'summary' && (\n <div className='absolute bottom-2 left-0 right-0'>\n <div className='dx-document px-4'>\n <ChatComponent.Status classNames='px-3 rounded-sm bg-group-surface' />\n </div>\n </div>\n )}\n </div>\n <div className='dx-document px-4 pb-4'>\n <div className='flex flex-col items-center py-2 overflow-hidden'>\n <ChatComponent.TaskList classNames='max-h-[120px] border border-separator rounded-sm text-description' />\n </div>\n <ChatComponent.Prompt\n {...chatProps}\n outline\n preset={preset?.id}\n online={online}\n onOnlineChange={setOnline}\n />\n </div>\n </ChatComponent.Content>\n </Panel.Content>\n </Panel.Root>\n </ChatComponent.Root>\n );\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "forwardRef", "useEffect", "useRef", "Capabilities", "useAtomCapability", "useCapability", "getSpace", "Panel", "getParentId", "Chat", "ChatComponent", "useBlueprintRegistry", "useChatProcessor", "useChatServices", "useOnline", "usePresets", "AssistantCapabilities", "ChatArticle", "props", "forwardedRef", "role", "attendableId", "subject", "chat", "space", "spaceProp", "companionTo", "onEvent", "parentId", "undefined", "settings", "Settings", "runtime", "id", "online", "setOnline", "preset", "chatProps", "blueprintRegistry", "processor", "registry", "AtomRegistry", "stateAtom", "State", "pendingSubmitted", "current", "state", "get", "pendingPrompt", "pendingPrompts", "update", "_", "rest", "request", "message", "feedTarget", "feed", "target", "view", "chatView", "Root", "db", "ref", "Toolbar", "className", "classNames", "Content", "div", "Thread", "viewType", "Status", "TaskList", "Prompt", "outline", "onOnlineChange"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/companion-chat-provisioner.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Option from "effect/Option";
|
|
6
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
7
|
+
import { Graph } from "@dxos/app-graph";
|
|
8
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
9
|
+
import { Chat } from "@dxos/assistant-toolkit";
|
|
10
|
+
import { Obj } from "@dxos/echo";
|
|
11
|
+
import { log } from "@dxos/log";
|
|
12
|
+
import { DeckCapabilities, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck";
|
|
13
|
+
import { getLinkedVariant } from "@dxos/react-ui-attention";
|
|
14
|
+
import { byPosition } from "@dxos/util";
|
|
15
|
+
import { ASSISTANT_COMPANION_VARIANT } from "#meta";
|
|
16
|
+
import { AssistantCapabilities, AssistantOperation } from "#types";
|
|
17
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/capabilities/companion-chat-provisioner.ts";
|
|
18
|
+
var companion_chat_provisioner_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
19
|
+
const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);
|
|
20
|
+
const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
|
|
21
|
+
const registry = yield* Capability.get(Capabilities.AtomRegistry);
|
|
22
|
+
const deckStateAtom = yield* Capability.get(DeckCapabilities.State);
|
|
23
|
+
const cacheAtom = yield* Capability.get(AssistantCapabilities.CompanionChatCache);
|
|
24
|
+
const stateAtom = yield* Capability.get(AssistantCapabilities.State);
|
|
25
|
+
const plankSubs = /* @__PURE__ */ new Map();
|
|
26
|
+
const unsubPlank = (plankId) => {
|
|
27
|
+
plankSubs.get(plankId)?.();
|
|
28
|
+
plankSubs.delete(plankId);
|
|
29
|
+
};
|
|
30
|
+
const unsubAllPlanks = () => {
|
|
31
|
+
for (const unsub of plankSubs.values()) {
|
|
32
|
+
unsub();
|
|
33
|
+
}
|
|
34
|
+
plankSubs.clear();
|
|
35
|
+
};
|
|
36
|
+
const provisionForPlank = (plankId, companionVariant) => {
|
|
37
|
+
const node = Graph.getNode(graph, plankId).pipe(Option.getOrNull);
|
|
38
|
+
if (!node || !Obj.isObject(node.data) || Obj.instanceOf(Chat.Chat, node.data)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
if (resolveEffectiveVariant(graph, plankId, companionVariant) !== ASSISTANT_COMPANION_VARIANT) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const object = node.data;
|
|
45
|
+
const companionDXN = Obj.getDXN(object).toString();
|
|
46
|
+
const cache = registry.get(cacheAtom);
|
|
47
|
+
if (cache[companionDXN]) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
const db = Obj.getDatabase(object);
|
|
51
|
+
if (!db) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
void operationInvoker.invokePromise(AssistantOperation.EnsureCompanionChat, {
|
|
55
|
+
db,
|
|
56
|
+
companionTo: object
|
|
57
|
+
}).catch((error) => log.warn("Failed to provision companion chat", {
|
|
58
|
+
plankId,
|
|
59
|
+
error
|
|
60
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 63, S: this }));
|
|
61
|
+
return false;
|
|
62
|
+
};
|
|
63
|
+
const provision = () => {
|
|
64
|
+
const deckState = registry.get(deckStateAtom);
|
|
65
|
+
const deck = deckState.decks[deckState.activeDeck];
|
|
66
|
+
if (!deck?.companionOpen) {
|
|
67
|
+
unsubAllPlanks();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const plankIds = new Set(deck.solo ? [
|
|
71
|
+
deck.solo
|
|
72
|
+
] : deck.active);
|
|
73
|
+
for (const trackedId of plankSubs.keys()) {
|
|
74
|
+
if (!plankIds.has(trackedId)) {
|
|
75
|
+
unsubPlank(trackedId);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
for (const plankId of plankIds) {
|
|
79
|
+
const resolved = provisionForPlank(plankId, deck.companionVariant);
|
|
80
|
+
if (resolved) {
|
|
81
|
+
unsubPlank(plankId);
|
|
82
|
+
} else if (!plankSubs.has(plankId)) {
|
|
83
|
+
plankSubs.set(plankId, registry.subscribe(graph.connections(plankId, "child"), () => {
|
|
84
|
+
if (provisionForPlank(plankId, deck.companionVariant)) {
|
|
85
|
+
unsubPlank(plankId);
|
|
86
|
+
}
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
provision();
|
|
92
|
+
const unsub1 = registry.subscribe(deckStateAtom, provision);
|
|
93
|
+
const unsub2 = registry.subscribe(stateAtom, provision);
|
|
94
|
+
return Capability.contributes(Capabilities.Null, null, () => Effect.sync(() => {
|
|
95
|
+
unsub1();
|
|
96
|
+
unsub2();
|
|
97
|
+
unsubAllPlanks();
|
|
98
|
+
}));
|
|
99
|
+
}));
|
|
100
|
+
var resolveEffectiveVariant = (graph, plankId, preferredVariant) => {
|
|
101
|
+
const companions = Graph.getConnections(graph, plankId, "child").filter((node) => node.type === PLANK_COMPANION_TYPE).toSorted((a, b) => byPosition(a.properties, b.properties));
|
|
102
|
+
if (companions.length === 0) {
|
|
103
|
+
return void 0;
|
|
104
|
+
}
|
|
105
|
+
if (preferredVariant) {
|
|
106
|
+
const preferred = companions.find((companion) => getLinkedVariant(companion.id) === preferredVariant);
|
|
107
|
+
if (preferred) {
|
|
108
|
+
return getLinkedVariant(preferred.id);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return getLinkedVariant(companions[0].id);
|
|
112
|
+
};
|
|
113
|
+
export {
|
|
114
|
+
companion_chat_provisioner_default as default
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=companion-chat-provisioner-2Y6PRSDK.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/companion-chat-provisioner.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Registry } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Graph, type Node } from '@dxos/app-graph';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { DeckCapabilities, PLANK_COMPANION_TYPE, type StoredDeckState } from '@dxos/plugin-deck';\nimport { getLinkedVariant } from '@dxos/react-ui-attention';\nimport { byPosition } from '@dxos/util';\n\nimport { ASSISTANT_COMPANION_VARIANT } from '#meta';\nimport { AssistantCapabilities, AssistantOperation } from '#types';\n\n/**\n * Non-React capability that watches deck companion state and provisions transient chats\n * for active planks when the assistant companion is selected.\n */\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n const registry: Registry.Registry = yield* Capability.get(Capabilities.AtomRegistry);\n const deckStateAtom = yield* Capability.get(DeckCapabilities.State);\n const cacheAtom = yield* Capability.get(AssistantCapabilities.CompanionChatCache);\n const stateAtom = yield* Capability.get(AssistantCapabilities.State);\n\n const plankSubs = new Map<string, () => void>();\n\n /** Unsubscribe a single plank and remove it from the map. */\n const unsubPlank = (plankId: string) => {\n plankSubs.get(plankId)?.();\n plankSubs.delete(plankId);\n };\n\n /** Unsubscribe all per-plank subscriptions. */\n const unsubAllPlanks = () => {\n for (const unsub of plankSubs.values()) {\n unsub();\n }\n plankSubs.clear();\n };\n\n /**\n * Attempt to provision for a single plank.\n * Returns true when the plank is resolved (provisioned or already cached)\n * so the caller can tear down the connection subscription.\n */\n const provisionForPlank = (plankId: string, companionVariant: string | undefined): boolean => {\n const node: Node.Node | null = Graph.getNode(graph, plankId).pipe(Option.getOrNull);\n if (!node || !Obj.isObject(node.data) || Obj.instanceOf(Chat.Chat, node.data)) {\n return false;\n }\n\n if (resolveEffectiveVariant(graph, plankId, companionVariant) !== ASSISTANT_COMPANION_VARIANT) {\n return false;\n }\n\n const object = node.data;\n const companionDXN = Obj.getDXN(object).toString();\n const cache = registry.get(cacheAtom);\n if (cache[companionDXN]) {\n return true;\n }\n\n const db = Obj.getDatabase(object);\n if (!db) {\n return false;\n }\n\n void operationInvoker\n .invokePromise(AssistantOperation.EnsureCompanionChat, { db, companionTo: object })\n .catch((error) => log.warn('Failed to provision companion chat', { plankId, error }));\n\n return false;\n };\n\n const provision = () => {\n const deckState: StoredDeckState = registry.get(deckStateAtom);\n const deck = deckState.decks[deckState.activeDeck];\n if (!deck?.companionOpen) {\n unsubAllPlanks();\n return;\n }\n\n const plankIds = new Set(deck.solo ? [deck.solo] : deck.active);\n\n // Remove subscriptions for planks that are no longer active.\n for (const trackedId of plankSubs.keys()) {\n if (!plankIds.has(trackedId)) {\n unsubPlank(trackedId);\n }\n }\n\n for (const plankId of plankIds) {\n const resolved = provisionForPlank(plankId, deck.companionVariant);\n\n if (resolved) {\n // Already provisioned — no need to watch connections.\n unsubPlank(plankId);\n } else if (!plankSubs.has(plankId)) {\n // Not yet resolved — subscribe to child connections so we re-try\n // when graph builder extensions add companion nodes (after expand).\n plankSubs.set(\n plankId,\n registry.subscribe(graph.connections(plankId, 'child'), () => {\n if (provisionForPlank(plankId, deck.companionVariant)) {\n unsubPlank(plankId);\n }\n }),\n );\n }\n }\n };\n\n provision();\n\n const unsub1 = registry.subscribe(deckStateAtom, provision);\n const unsub2 = registry.subscribe(stateAtom, provision);\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n unsub1();\n unsub2();\n unsubAllPlanks();\n }),\n );\n }),\n);\n\n/**\n * Mirrors useSelectedCompanion fallback logic outside of React.\n * Returns the variant that would actually be rendered for a given plank.\n */\nconst resolveEffectiveVariant = (\n graph: Graph.BaseGraph,\n plankId: string,\n preferredVariant: string | undefined,\n): string | undefined => {\n const companions = Graph.getConnections(graph, plankId, 'child')\n .filter((node) => node.type === PLANK_COMPANION_TYPE)\n .toSorted((a, b) => byPosition(a.properties, b.properties));\n\n if (companions.length === 0) {\n return undefined;\n }\n\n if (preferredVariant) {\n const preferred = companions.find((companion) => getLinkedVariant(companion.id) === preferredVariant);\n if (preferred) {\n return getLinkedVariant(preferred.id);\n }\n }\n\n return getLinkedVariant(companions[0].id);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "Option", "Capabilities", "Capability", "Graph", "AppCapabilities", "Chat", "Obj", "log", "DeckCapabilities", "PLANK_COMPANION_TYPE", "getLinkedVariant", "byPosition", "ASSISTANT_COMPANION_VARIANT", "AssistantCapabilities", "AssistantOperation", "registry", "AtomRegistry", "deckStateAtom", "get", "State", "cacheAtom", "CompanionChatCache", "stateAtom", "plankSubs", "Map", "plankId", "unsub", "clear", "node", "resolveEffectiveVariant", "object", "cache", "companionDXN", "operationInvoker", "companionTo", "catch", "error", "provision", "deckState", "deck", "companionOpen", "unsubAllPlanks", "trackedId", "unsubPlank", "resolved", "unsub2", "contributes", "unsub1", "companions", "undefined", "preferredVariant", "preferred"]
|
|
7
|
+
}
|