@dxos/plugin-assistant 0.9.0 → 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-K7XM46OQ.mjs → AgentArticle-GV6EEW3I.mjs} +9 -8
- 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-VNVZCDUR.mjs → ChatArticle-OO7GGEFW.mjs} +2 -2
- package/dist/lib/neutral/{ChatCompanion-LBUHYWQG.mjs → ChatCompanion-GIFJRY6I.mjs} +28 -28
- package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs.map +7 -0
- package/dist/lib/neutral/{ChatDialog-DCA6FLOV.mjs → ChatDialog-5MXN4MXS.mjs} +9 -8
- 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/{PlanArticle-TS5ULWYS.mjs → PlanArticle-VPK2IYWU.mjs} +8 -2
- package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs +114 -0
- 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-JKNWADJ4.mjs +12 -0
- package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs.map +7 -0
- package/dist/lib/neutral/{TriggerStatus-X7Y5JFZJ.mjs → TriggerStatus-FURRBHYA.mjs} +9 -7
- 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-WCAP5MLI.mjs → agent-service-XFJ4VQMT.mjs} +6 -6
- 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-WUFHQH3Y.mjs → app-graph-builder-OPVOEQY7.mjs} +45 -28
- 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 +21 -19
- 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-YXRGZYYH.mjs → chunk-6Q4OBGIK.mjs} +87 -59
- package/dist/lib/neutral/chunk-6Q4OBGIK.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BXI2R4OO.mjs +410 -0
- 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-SMFJD7BP.mjs.map → chunk-GPHT3HYS.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-HKLSFB5I.mjs +90 -0
- package/dist/lib/neutral/chunk-HKLSFB5I.mjs.map +7 -0
- package/dist/lib/neutral/chunk-L7AR4VTA.mjs +53 -0
- package/dist/lib/neutral/chunk-L7AR4VTA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LS72HWMM.mjs +42 -0
- package/dist/lib/neutral/chunk-LS72HWMM.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-HLANPOBA.mjs → chunk-OZWZGIV2.mjs} +5 -3
- package/dist/lib/neutral/chunk-OZWZGIV2.mjs.map +7 -0
- 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/{TracePanel-KTZJ6JNR.mjs → chunk-SCTHQVIJ.mjs} +11 -23
- package/dist/lib/neutral/chunk-SCTHQVIJ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-U4LTLBAX.mjs +56 -0
- package/dist/lib/neutral/chunk-U4LTLBAX.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-RKVVK3R3.mjs → chunk-UPKFUZ6V.mjs} +22 -17
- 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-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 +749 -632
- 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 +15 -13
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-chat-SGGQ6HVN.mjs → create-chat-YGVZZYGP.mjs} +18 -16
- package/dist/lib/neutral/create-chat-YGVZZYGP.mjs.map +7 -0
- package/dist/lib/neutral/{create-object-U2SOFZLR.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 +336 -62
- package/dist/lib/neutral/execution-graph/index.mjs.map +4 -4
- package/dist/lib/neutral/extensions/index.mjs +8 -0
- package/dist/lib/neutral/{fork-chat-34KEF4ZJ.mjs → fork-chat-RMAAYYQF.mjs} +16 -19
- 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 +393 -508
- 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-XRTBW5OJ.mjs → react-surface-HEJEK44F.mjs} +42 -45
- 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-D5IIE2C7.mjs → run-prompt-in-new-chat-RNUJE2FM.mjs} +31 -31
- package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs.map +7 -0
- package/dist/lib/neutral/{settings-W4BLWQ53.mjs → settings-7Q3RITIT.mjs} +3 -3
- package/dist/lib/neutral/{settings-W4BLWQ53.mjs.map → settings-7Q3RITIT.mjs.map} +3 -3
- 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-H3G7QCU6.mjs → state-4LGAKSSD.mjs} +9 -3
- package/dist/lib/neutral/state-4LGAKSSD.mjs.map +7 -0
- 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 +69 -31
- 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/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- 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 +18 -57
- 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 +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +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 +10 -8
- package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/src/components/Chat/Chat.stories.d.ts +32 -0
- package/dist/types/src/components/Chat/Chat.stories.d.ts.map +1 -0
- 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 +6 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
- package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +1 -0
- package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.d.ts +8 -0
- package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -1
- package/dist/types/src/components/TaskList/TaskList.stories.d.ts +5 -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 +1 -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 +3 -10
- package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -1
- package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +4 -11
- 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/PlanArticle/PlanArticle.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts +15 -0
- package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomePrompt/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomePrompt/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts +13 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeSuggestions/index.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/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 +4 -3
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts +20 -1
- package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -1
- package/dist/types/src/execution-graph/index.d.ts +3 -2
- package/dist/types/src/execution-graph/index.d.ts.map +1 -1
- package/dist/types/src/execution-graph/pending-block-status.d.ts +26 -0
- package/dist/types/src/execution-graph/pending-block-status.d.ts.map +1 -0
- package/dist/types/src/execution-graph/pending-block-status.test.d.ts +2 -0
- package/dist/types/src/execution-graph/pending-block-status.test.d.ts.map +1 -0
- 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 +1 -1
- package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -1
- package/dist/types/src/feed-logger.d.ts +3 -2
- package/dist/types/src/feed-logger.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +4 -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/useProcessEphemeralStatus.d.ts +10 -0
- package/dist/types/src/hooks/useProcessEphemeralStatus.d.ts.map +1 -0
- 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/hooks/useTraceMessages.d.ts +12 -0
- package/dist/types/src/hooks/useTraceMessages.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 +32 -2
- 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 +33 -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/AssistantEvents.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/error-cause.d.ts +3 -0
- package/dist/types/src/util/error-cause.d.ts.map +1 -0
- package/dist/types/src/util/suggestions.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +38 -0
- package/package.json +103 -90
- package/src/AssistantPlugin.conversations.json +1 -1
- package/src/AssistantPlugin.node.ts +5 -5
- package/src/AssistantPlugin.test.ts +27 -41
- package/src/AssistantPlugin.ts +14 -12
- package/src/AssistantPlugin.workerd.ts +15 -6
- package/src/capabilities/agent-hydrator.ts +1 -2
- package/src/capabilities/agent-service.ts +7 -5
- package/src/capabilities/ai-context.ts +7 -32
- package/src/capabilities/ai-service.ts +3 -2
- package/src/capabilities/app-graph-builder.ts +43 -28
- 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 +4 -12
- package/src/capabilities/markdown-extension.ts +7 -4
- package/src/capabilities/navigation-resolver.ts +20 -0
- package/src/capabilities/react-surface.tsx +55 -52
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/skill-definition.ts +72 -0
- package/src/capabilities/state.ts +8 -1
- package/src/components/AgentProperties/AgentProperties.stories.tsx +1 -2
- package/src/components/AgentProperties/AgentProperties.tsx +1 -1
- package/src/components/Chat/Chat.stories.tsx +94 -0
- package/src/components/Chat/Chat.tsx +67 -16
- package/src/components/Chat/events.ts +0 -6
- package/src/components/ChatPrompt/ChatActions.tsx +185 -20
- package/src/components/ChatPrompt/ChatMcpErrors.tsx +1 -1
- package/src/components/ChatPrompt/ChatOptions.stories.tsx +3 -3
- package/src/components/ChatPrompt/ChatOptions.tsx +43 -50
- package/src/components/ChatPrompt/ChatPrompt.tsx +31 -47
- package/src/components/ChatPrompt/ChatReferences.tsx +1 -1
- package/src/components/ChatPrompt/useChatVoiceInput.ts +103 -0
- package/src/components/ChatThread/Anchor.stories.tsx +1 -1
- package/src/components/ChatThread/ChatThread.stories.tsx +7 -16
- package/src/components/ChatThread/DEBUG.md +23 -0
- 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/SummaryWidget.tsx +1 -1
- package/src/components/ChatThread/widgets/SurfaceWidget.tsx +41 -0
- package/src/components/ChatThread/widgets/ToolWidget.tsx +1 -1
- package/src/components/ChatThread/widgets/index.ts +1 -0
- package/src/components/ProcessTree/ProcessTree.stories.tsx +7 -0
- package/src/components/ProcessTree/ProcessTree.tsx +183 -88
- package/src/components/TaskList/TaskList.stories.tsx +24 -3
- package/src/components/TaskList/TaskList.tsx +122 -28
- package/src/components/ToolBlock/ToolBlock.tsx +1 -1
- package/src/components/Toolbox/Toolbox.tsx +11 -11
- package/src/components/index.ts +1 -6
- package/src/constants.ts +1 -1
- package/src/containers/AgentArticle/AgentArticle.stories.tsx +12 -13
- package/src/containers/AgentArticle/AgentArticle.tsx +10 -10
- 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 +25 -28
- package/src/containers/ChatCompanion/ChatCompanion.tsx +27 -27
- package/src/containers/ChatDialog/ChatDialog.tsx +10 -7
- package/src/containers/IntegrationPrompt/IntegrationPrompt.tsx +79 -0
- package/src/containers/IntegrationPrompt/index.ts +5 -0
- package/src/containers/PlanArticle/PlanArticle.tsx +5 -1
- package/src/containers/SpaceHomePrompt/SpaceHomePrompt.tsx +107 -0
- package/src/containers/SpaceHomePrompt/index.ts +5 -0
- package/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.tsx +83 -0
- package/src/containers/SpaceHomeSuggestions/index.ts +5 -0
- package/src/containers/TracePanel/TracePanel.stories.tsx +89 -47
- package/src/containers/TracePanel/TracePanel.tsx +15 -37
- package/src/containers/TracePanel/dxn-extractor.test.ts +2 -2
- package/src/containers/TriggerStatus/TriggerStatus.tsx +10 -6
- package/src/containers/index.ts +4 -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 +337 -70
- package/src/execution-graph/index.ts +15 -5
- package/src/execution-graph/pending-block-status.test.ts +114 -0
- package/src/execution-graph/pending-block-status.ts +88 -0
- 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 +34 -19
- package/src/extensions/index.ts +1 -1
- package/src/extensions/prompt-extension.ts +102 -73
- package/src/feed-logger.ts +24 -22
- package/src/functions/services.test.ts +4 -4
- package/src/hooks/index.ts +4 -2
- package/src/hooks/useChatProcessor.ts +12 -16
- package/src/hooks/useChatServices.ts +2 -2
- package/src/hooks/useChatToolbarActions.ts +5 -5
- 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 +192 -0
- package/src/hooks/useReferencesProvider.ts +1 -1
- package/src/hooks/useSkillRegistry.ts +125 -0
- package/src/hooks/useTraceMessages.ts +41 -0
- package/src/index.ts +1 -1
- package/src/meta.ts +3 -31
- package/src/operations/create-chat.ts +11 -12
- package/src/operations/fork-chat.ts +15 -20
- 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 +34 -35
- package/src/operations/update-chat-name.ts +2 -2
- package/src/paths.ts +5 -3
- package/src/plugin.workerd.ts +5 -0
- package/src/processor/presets.ts +38 -61
- package/src/processor/processor.node.test.ts +72 -2
- package/src/processor/processor.ts +91 -21
- 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 -1093
- 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 +74 -31
- package/src/types/Assistant.ts +3 -1
- package/src/types/AssistantCapabilities.ts +24 -3
- package/src/types/AssistantEvents.ts +1 -1
- package/src/types/AssistantOperation.ts +22 -33
- 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/error-cause.ts +21 -0
- package/src/util/suggestions.ts +1 -1
- package/dist/lib/neutral/AgentArticle-K7XM46OQ.mjs.map +0 -7
- package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs +0 -40
- package/dist/lib/neutral/AssistantSettings-GG52BLKS.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-LBUHYWQG.mjs.map +0 -7
- package/dist/lib/neutral/ChatDialog-DCA6FLOV.mjs.map +0 -7
- package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs.map +0 -7
- package/dist/lib/neutral/RoutineArticle-5NYXHRG6.mjs +0 -119
- package/dist/lib/neutral/RoutineArticle-5NYXHRG6.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/TracePanel-KTZJ6JNR.mjs.map +0 -7
- package/dist/lib/neutral/TriggerStatus-X7Y5JFZJ.mjs.map +0 -7
- package/dist/lib/neutral/agent-hydrator-PJBYVMBW.mjs.map +0 -7
- package/dist/lib/neutral/agent-service-WCAP5MLI.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-WUFHQH3Y.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-MH2QLYQH.mjs +0 -39
- package/dist/lib/neutral/blueprint-definition-MH2QLYQH.mjs.map +0 -7
- package/dist/lib/neutral/blueprints/index.mjs +0 -8
- package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HLANPOBA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KLYLW4WH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-QAZMOFPI.mjs +0 -130
- package/dist/lib/neutral/chunk-QAZMOFPI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-RKVVK3R3.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SMFJD7BP.mjs +0 -8
- package/dist/lib/neutral/chunk-XYHPOGTK.mjs +0 -43
- package/dist/lib/neutral/chunk-XYHPOGTK.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YXRGZYYH.mjs.map +0 -7
- package/dist/lib/neutral/companion-chat-provisioner-YZZ73P6E.mjs.map +0 -7
- package/dist/lib/neutral/create-chat-SGGQ6HVN.mjs.map +0 -7
- package/dist/lib/neutral/create-object-U2SOFZLR.mjs.map +0 -7
- package/dist/lib/neutral/fork-chat-34KEF4ZJ.mjs.map +0 -7
- package/dist/lib/neutral/integration-provider-RBD3AFJU.mjs.map +0 -7
- package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs +0 -110
- package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-XRTBW5OJ.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-D5IIE2C7.mjs.map +0 -7
- package/dist/lib/neutral/state-H3G7QCU6.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 -65
- 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/src/testing/trace-timeline.node.conversations.json +0 -1
- /package/dist/lib/neutral/{ChatArticle-VNVZCDUR.mjs.map → ChatArticle-OO7GGEFW.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
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
import * as Array from 'effect/Array';
|
|
6
6
|
import * as Either from 'effect/Either';
|
|
7
7
|
import { pipe } from 'effect/Function';
|
|
8
|
+
import * as Option from 'effect/Option';
|
|
8
9
|
import * as Pipeable from 'effect/Pipeable';
|
|
9
10
|
import * as Schema from 'effect/Schema';
|
|
10
11
|
import * as Struct from 'effect/Struct';
|
|
11
12
|
|
|
12
13
|
import { AgentRequestBegin, AgentRequestEnd, CompleteBlock } from '@dxos/assistant';
|
|
13
14
|
import { Process, Trace } from '@dxos/compute';
|
|
15
|
+
import { Annotation } from '@dxos/echo';
|
|
14
16
|
import { AGENT_PROCESS_KEY } from '@dxos/functions-runtime';
|
|
17
|
+
import { EID } from '@dxos/keys';
|
|
15
18
|
import { LogLevel, log } from '@dxos/log';
|
|
16
19
|
import { type Commit } from '@dxos/react-ui-components';
|
|
17
20
|
import { type ContentBlock } from '@dxos/types';
|
|
@@ -23,6 +26,9 @@ import { ROOT_SPAN_ID, type Span, buildSpanTree, isSpanBeginEvent, isSpanEndEven
|
|
|
23
26
|
*/
|
|
24
27
|
const MAIN_BRANCH = 'main';
|
|
25
28
|
|
|
29
|
+
/** Timeline tag that applies a shimmer message effect. */
|
|
30
|
+
const SHIMMER_EFFECT_TAG = 'effect:shimmer';
|
|
31
|
+
|
|
26
32
|
const ICONS = {
|
|
27
33
|
agentRequestBegin: {
|
|
28
34
|
icon: 'ph--atom--regular',
|
|
@@ -85,6 +91,7 @@ const ICONS = {
|
|
|
85
91
|
export interface BuildExecutionGraphParams {
|
|
86
92
|
traceMessages: readonly Trace.Message[];
|
|
87
93
|
activeProcesses?: readonly Process.Info[];
|
|
94
|
+
collapseCompletedSpans?: boolean;
|
|
88
95
|
eventLimit?: number;
|
|
89
96
|
}
|
|
90
97
|
|
|
@@ -112,11 +119,12 @@ export type ExecutionGraphDetailsMap = Record<string, Trace.FlatEvent | undefine
|
|
|
112
119
|
export const buildExecutionGraph = ({
|
|
113
120
|
traceMessages,
|
|
114
121
|
activeProcesses = [],
|
|
122
|
+
collapseCompletedSpans = false,
|
|
115
123
|
eventLimit = 500,
|
|
116
124
|
}: BuildExecutionGraphParams): ExecutionGraph => {
|
|
117
125
|
const spanTree = buildSpanTree(traceMessages, { eventLimit });
|
|
118
126
|
const toolCallContext = buildToolCallContext(traceMessages);
|
|
119
|
-
const built = spanTreeToCommits(spanTree, activeProcesses, toolCallContext);
|
|
127
|
+
const built = spanTreeToCommits(spanTree, activeProcesses, toolCallContext, collapseCompletedSpans);
|
|
120
128
|
log('trace execution graph', {
|
|
121
129
|
traceMessages: traceMessages.length,
|
|
122
130
|
commits: built.commits.length,
|
|
@@ -282,7 +290,7 @@ const presentEvent = (event: Trace.FlatEvent, toolCallContext: ToolCallContext):
|
|
|
282
290
|
return {
|
|
283
291
|
icon: success ? ICONS.toolResultSuccess.icon : ICONS.toolResultError.icon,
|
|
284
292
|
level: success ? ICONS.toolResultSuccess.level : ICONS.toolResultError.level,
|
|
285
|
-
message: `${name}
|
|
293
|
+
message: `${name}${!success ? ' - Error' : ''}`,
|
|
286
294
|
idSuffix: `toolResult:${event.data.block.toolCallId}`,
|
|
287
295
|
};
|
|
288
296
|
}
|
|
@@ -311,18 +319,184 @@ const presentEvent = (event: Trace.FlatEvent, toolCallContext: ToolCallContext):
|
|
|
311
319
|
return {
|
|
312
320
|
icon: event.data.icon ?? (success ? ICONS.operationEndSuccess.icon : ICONS.operationEndError.icon),
|
|
313
321
|
level: success ? ICONS.operationEndSuccess.level : ICONS.operationEndError.level,
|
|
314
|
-
message: `${event.data.name ?? event.data.key}
|
|
322
|
+
message: `${event.data.name ?? event.data.key}${!success ? ' - Error' : ''}`,
|
|
315
323
|
idSuffix: `${event.data.key}:end`,
|
|
316
324
|
};
|
|
317
325
|
}
|
|
318
326
|
return undefined;
|
|
319
327
|
};
|
|
320
328
|
|
|
329
|
+
export type CollectProcessActivityOptions = {
|
|
330
|
+
/**
|
|
331
|
+
* When set, messages with a `conversationId` that disagrees are excluded.
|
|
332
|
+
* Messages without `conversationId` still match when their pid is in the subtree.
|
|
333
|
+
*/
|
|
334
|
+
conversationId?: string;
|
|
335
|
+
eventLimit?: number;
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Collects human-readable activity lines for a process subtree (root pid and descendants).
|
|
340
|
+
* Used to surface live sub-agent status in the task list.
|
|
341
|
+
*/
|
|
342
|
+
export const collectProcessActivityLines = (
|
|
343
|
+
messages: readonly Trace.Message[],
|
|
344
|
+
rootPid: string,
|
|
345
|
+
options: CollectProcessActivityOptions = {},
|
|
346
|
+
): string[] => {
|
|
347
|
+
const { conversationId, eventLimit = 50 } = options;
|
|
348
|
+
const descendantPids = collectDescendantPids(messages, rootPid);
|
|
349
|
+
const filtered = messages.filter((message) => {
|
|
350
|
+
const pid = message.meta.pid;
|
|
351
|
+
if (!pid || !descendantPids.has(pid)) {
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
const metaConvId = message.meta.conversation
|
|
355
|
+
? EID.getEntityId(EID.parse(message.meta.conversation.uri))
|
|
356
|
+
: undefined;
|
|
357
|
+
if (conversationId && metaConvId !== undefined && metaConvId !== conversationId) {
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
return true;
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
const events = filtered
|
|
364
|
+
.flatMap((message) => Trace.flatten(message))
|
|
365
|
+
.sort((left, right) => left.timestamp - right.timestamp)
|
|
366
|
+
.slice(-eventLimit);
|
|
367
|
+
|
|
368
|
+
const toolCallContext = buildToolCallContext(filtered);
|
|
369
|
+
const lines: string[] = [];
|
|
370
|
+
for (const event of events) {
|
|
371
|
+
const presentation = presentEvent(event, toolCallContext);
|
|
372
|
+
if (presentation) {
|
|
373
|
+
lines.push(presentation.message);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return lines;
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Derives a single in-flight status line from durable trace when ephemeral subscription
|
|
381
|
+
* is unavailable (e.g. between partial blocks or while a child operation is running).
|
|
382
|
+
*/
|
|
383
|
+
export const deriveInFlightActivityLine = (
|
|
384
|
+
messages: readonly Trace.Message[],
|
|
385
|
+
rootPid: string,
|
|
386
|
+
options: CollectProcessActivityOptions = {},
|
|
387
|
+
): string | undefined => {
|
|
388
|
+
const { conversationId, eventLimit = 50 } = options;
|
|
389
|
+
const descendantPids = collectDescendantPids(messages, rootPid);
|
|
390
|
+
const filtered = messages.filter((message) => {
|
|
391
|
+
const pid = message.meta.pid;
|
|
392
|
+
if (!pid || !descendantPids.has(pid)) {
|
|
393
|
+
return false;
|
|
394
|
+
}
|
|
395
|
+
const metaConvId = message.meta.conversation
|
|
396
|
+
? EID.getEntityId(EID.parse(message.meta.conversation.uri))
|
|
397
|
+
: undefined;
|
|
398
|
+
if (conversationId && metaConvId !== undefined && metaConvId !== conversationId) {
|
|
399
|
+
return false;
|
|
400
|
+
}
|
|
401
|
+
return true;
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
const events = filtered
|
|
405
|
+
.flatMap((message) => Trace.flatten(message))
|
|
406
|
+
.sort((left, right) => left.timestamp - right.timestamp)
|
|
407
|
+
.slice(-eventLimit);
|
|
408
|
+
|
|
409
|
+
const openOperations = new Map<string, { name: string; timestamp: number }>();
|
|
410
|
+
let agentRequestOpen = false;
|
|
411
|
+
let lastLine: string | undefined;
|
|
412
|
+
|
|
413
|
+
for (const event of events) {
|
|
414
|
+
const pid = event.meta.pid ?? rootPid;
|
|
415
|
+
if (Trace.isOfType(Trace.OperationStart, event)) {
|
|
416
|
+
const key = `${pid}:${event.data.key}`;
|
|
417
|
+
const name = event.data.name ?? event.data.key;
|
|
418
|
+
openOperations.set(key, { name, timestamp: event.timestamp });
|
|
419
|
+
lastLine = `${name}...`;
|
|
420
|
+
continue;
|
|
421
|
+
}
|
|
422
|
+
if (Trace.isOfType(Trace.OperationEnd, event)) {
|
|
423
|
+
openOperations.delete(`${pid}:${event.data.key}`);
|
|
424
|
+
continue;
|
|
425
|
+
}
|
|
426
|
+
if (Trace.isOfType(AgentRequestBegin, event)) {
|
|
427
|
+
agentRequestOpen = true;
|
|
428
|
+
lastLine = 'Generating...';
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
431
|
+
if (Trace.isOfType(AgentRequestEnd, event)) {
|
|
432
|
+
agentRequestOpen = false;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
if (agentRequestOpen) {
|
|
437
|
+
return 'Generating...';
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
const latestOperation = [...openOperations.values()].sort((left, right) => right.timestamp - left.timestamp)[0];
|
|
441
|
+
if (latestOperation) {
|
|
442
|
+
return `${latestOperation.name}...`;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
return lastLine;
|
|
446
|
+
};
|
|
447
|
+
|
|
448
|
+
const collectDescendantPids = (messages: readonly Trace.Message[], rootPid: string): Set<string> => {
|
|
449
|
+
const pids = new Set([rootPid]);
|
|
450
|
+
let expanded = true;
|
|
451
|
+
while (expanded) {
|
|
452
|
+
expanded = false;
|
|
453
|
+
for (const message of messages) {
|
|
454
|
+
const pid = message.meta.pid;
|
|
455
|
+
const parentPid = message.meta.parentPid;
|
|
456
|
+
if (pid && parentPid && pids.has(parentPid) && !pids.has(pid)) {
|
|
457
|
+
pids.add(pid);
|
|
458
|
+
expanded = true;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
return pids;
|
|
463
|
+
};
|
|
464
|
+
|
|
465
|
+
const isPendingToolCallEvent = (event: Trace.FlatEvent, toolCallContext: ToolCallContext): boolean => {
|
|
466
|
+
if (!Trace.isOfType(CompleteBlock, event)) {
|
|
467
|
+
return false;
|
|
468
|
+
}
|
|
469
|
+
if (event.data.block._tag !== 'toolCall') {
|
|
470
|
+
return false;
|
|
471
|
+
}
|
|
472
|
+
return !toolCallContext.resultByCallId.has(event.data.block.toolCallId);
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Marks commits that represent work still in flight for Timeline shimmer styling.
|
|
477
|
+
*/
|
|
478
|
+
const shouldShimmerInProgressCommit = (event: Trace.FlatEvent, toolCallContext: ToolCallContext): boolean =>
|
|
479
|
+
isPendingToolCallEvent(event, toolCallContext);
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* A span is completed when its last recorded event is a matching end boundary.
|
|
483
|
+
*/
|
|
484
|
+
const isCompletedSpan = (span: Span): boolean => {
|
|
485
|
+
if (span.id === ROOT_SPAN_ID) {
|
|
486
|
+
return false;
|
|
487
|
+
}
|
|
488
|
+
const lastEvent = span.events[span.events.length - 1];
|
|
489
|
+
return lastEvent !== undefined && isSpanEndEvent(lastEvent);
|
|
490
|
+
};
|
|
491
|
+
|
|
321
492
|
/**
|
|
322
493
|
* A span is "collapsible" when it would otherwise render as an empty fork-and-merge:
|
|
323
494
|
* exactly two events that form a begin/end pair and no child sub-spans. In that case
|
|
324
495
|
* we emit a single commit for the end event on the parent branch.
|
|
325
496
|
*
|
|
497
|
+
* When `collapseCompletedSpans` is enabled, any completed span collapses to that single
|
|
498
|
+
* end commit — middle events, child sub-spans, and the begin fork are all omitted.
|
|
499
|
+
*
|
|
326
500
|
* A *pending* span (one whose end event has not yet been recorded) is never collapsed:
|
|
327
501
|
* its trailing events should keep rendering as middle commits on the span's own branch
|
|
328
502
|
* — never as a fake "end" commit on the parent branch.
|
|
@@ -331,22 +505,24 @@ const presentEvent = (event: Trace.FlatEvent, toolCallContext: ToolCallContext):
|
|
|
331
505
|
* once they have completed: a span with no inner activity is collapsed regardless of where
|
|
332
506
|
* it sits in the tree.
|
|
333
507
|
*/
|
|
334
|
-
const isCollapsibleSpan = (span: Span, parent: Span | null): boolean => {
|
|
508
|
+
const isCollapsibleSpan = (span: Span, parent: Span | null, collapseCompletedSpans: boolean): boolean => {
|
|
335
509
|
if (span.id === ROOT_SPAN_ID) {
|
|
336
510
|
return false;
|
|
337
511
|
}
|
|
338
|
-
if (
|
|
512
|
+
if (parent === null) {
|
|
339
513
|
return false;
|
|
340
514
|
}
|
|
341
|
-
if (span.children.length
|
|
342
|
-
|
|
515
|
+
if (span.events.length === 2 && span.children.length === 0) {
|
|
516
|
+
const firstEvent = span.events[0];
|
|
517
|
+
const lastEvent = span.events[span.events.length - 1];
|
|
518
|
+
if (isSpanBeginEvent(firstEvent) && isSpanEndEvent(lastEvent)) {
|
|
519
|
+
return true;
|
|
520
|
+
}
|
|
343
521
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
if (!isSpanBeginEvent(firstEvent) || !isSpanEndEvent(lastEvent)) {
|
|
347
|
-
return false;
|
|
522
|
+
if (collapseCompletedSpans && isCompletedSpan(span)) {
|
|
523
|
+
return true;
|
|
348
524
|
}
|
|
349
|
-
return
|
|
525
|
+
return false;
|
|
350
526
|
};
|
|
351
527
|
|
|
352
528
|
/**
|
|
@@ -361,13 +537,15 @@ const isCollapsibleSpan = (span: Span, parent: Span | null): boolean => {
|
|
|
361
537
|
* Collapsible spans (`isCollapsibleSpan`) emit only the end commit on the parent branch with
|
|
362
538
|
* a single parent — a tidier rendering for sub-operations that have no inner detail.
|
|
363
539
|
*
|
|
364
|
-
* Events are processed in
|
|
365
|
-
*
|
|
540
|
+
* Events are processed in categorical span-tree order: each span's begin events, its child
|
|
541
|
+
* subtrees (depth-first), then its remaining events. Active-process running rows are inserted
|
|
542
|
+
* at the end of each matching span block — not appended after the entire tree.
|
|
366
543
|
*/
|
|
367
544
|
const spanTreeToCommits = (
|
|
368
545
|
root: Span,
|
|
369
546
|
activeProcesses: readonly Process.Info[],
|
|
370
547
|
toolCallContext: ToolCallContext,
|
|
548
|
+
collapseCompletedSpans: boolean,
|
|
371
549
|
): { branches: string[]; commits: Commit[]; details: ExecutionGraphDetailsMap } => {
|
|
372
550
|
const builder = new GraphBuilder();
|
|
373
551
|
const details: ExecutionGraphDetailsMap = {};
|
|
@@ -387,6 +565,24 @@ const spanTreeToCommits = (
|
|
|
387
565
|
|
|
388
566
|
const findParentSpan = (span: Span): Span | null => parentBySpan.get(span) ?? null;
|
|
389
567
|
|
|
568
|
+
const collapsedSpanIds = new Set<string>();
|
|
569
|
+
walkSpanTree(root, (span) => {
|
|
570
|
+
if (isCollapsibleSpan(span, findParentSpan(span), collapseCompletedSpans)) {
|
|
571
|
+
collapsedSpanIds.add(span.id);
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
|
|
575
|
+
const isUnderCollapsedAncestor = (span: Span): boolean => {
|
|
576
|
+
let ancestor = findParentSpan(span);
|
|
577
|
+
while (ancestor) {
|
|
578
|
+
if (collapsedSpanIds.has(ancestor.id)) {
|
|
579
|
+
return true;
|
|
580
|
+
}
|
|
581
|
+
ancestor = findParentSpan(ancestor);
|
|
582
|
+
}
|
|
583
|
+
return false;
|
|
584
|
+
};
|
|
585
|
+
|
|
390
586
|
// The branch name for a span is its pid — multiple sequential spans of the same process
|
|
391
587
|
// (e.g. successive agent requests in one session) share a branch so they reuse a single lane.
|
|
392
588
|
const branchOf = (span: Span | null): string => {
|
|
@@ -396,6 +592,9 @@ const spanTreeToCommits = (
|
|
|
396
592
|
return span.meta.pid ?? span.id;
|
|
397
593
|
};
|
|
398
594
|
|
|
595
|
+
// Track the id of the begin commit for each non-collapsible span so the end commit can merge into it.
|
|
596
|
+
const beginCommitIdBySpan = new Map<string, string>();
|
|
597
|
+
|
|
399
598
|
// Selector that returns "the most recent commit in this span's structural context".
|
|
400
599
|
//
|
|
401
600
|
// The walk is structural (pid/parentPid), not topological: at each ancestor, we prefer
|
|
@@ -421,29 +620,60 @@ const spanTreeToCommits = (
|
|
|
421
620
|
);
|
|
422
621
|
};
|
|
423
622
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
event: Trace.FlatEvent;
|
|
429
|
-
eventIndex: number;
|
|
430
|
-
globalIndex: number;
|
|
431
|
-
}
|
|
432
|
-
const stream: EventCursor[] = [];
|
|
433
|
-
walkSpanTree(root, (span) => {
|
|
434
|
-
span.events.forEach((event, eventIndex) => {
|
|
435
|
-
stream.push({ span, event, eventIndex, globalIndex: stream.length });
|
|
436
|
-
});
|
|
437
|
-
});
|
|
438
|
-
stream.sort((a, b) => a.event.timestamp - b.event.timestamp || a.globalIndex - b.globalIndex);
|
|
623
|
+
const lastCommitIdBySpan = new Map<string, string>();
|
|
624
|
+
let globalIndex = 0;
|
|
625
|
+
const insertedRunningPids = new Set<string>();
|
|
626
|
+
const activeProcessByPid = new Map(activeProcesses.map((process) => [process.pid, process]));
|
|
439
627
|
|
|
440
|
-
|
|
441
|
-
|
|
628
|
+
const emitRunningIndicator = (pid: Process.ID): void => {
|
|
629
|
+
if (insertedRunningPids.has(pid)) {
|
|
630
|
+
return;
|
|
631
|
+
}
|
|
442
632
|
|
|
443
|
-
|
|
633
|
+
const process = activeProcessByPid.get(pid);
|
|
634
|
+
if (!process) {
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
if (
|
|
639
|
+
process.key === AGENT_PROCESS_KEY &&
|
|
640
|
+
Option.isSome(Annotation.getDictionary(process.params.annotations, Process.TargetAnnotation)) &&
|
|
641
|
+
(process.state === Process.State.RUNNING || process.state === Process.State.HYBERNATING)
|
|
642
|
+
) {
|
|
643
|
+
builder.addCommit({
|
|
644
|
+
id: `running:${process.pid}`,
|
|
645
|
+
branch: process.pid,
|
|
646
|
+
parents: builder.computeParents(
|
|
647
|
+
CommitSelector.branch(process.pid).pipe(CommitSelector.compose(CommitSelector.last())),
|
|
648
|
+
),
|
|
649
|
+
icon: ICONS.agentRequestRunning.icon,
|
|
650
|
+
level: ICONS.agentRequestRunning.level,
|
|
651
|
+
message: 'Generating...',
|
|
652
|
+
timestamp: new Date(),
|
|
653
|
+
tags: [SHIMMER_EFFECT_TAG],
|
|
654
|
+
});
|
|
655
|
+
insertedRunningPids.add(pid);
|
|
656
|
+
} else if (process.state === Process.State.RUNNING && builder.hasBranch(process.pid)) {
|
|
657
|
+
builder.addCommit({
|
|
658
|
+
id: `running:${process.pid}`,
|
|
659
|
+
branch: process.pid,
|
|
660
|
+
parents: builder.computeParents(
|
|
661
|
+
CommitSelector.branch(process.pid).pipe(CommitSelector.compose(CommitSelector.last())),
|
|
662
|
+
),
|
|
663
|
+
icon: ICONS.processRunning.icon,
|
|
664
|
+
level: ICONS.processRunning.level,
|
|
665
|
+
message: 'Running...',
|
|
666
|
+
timestamp: new Date(),
|
|
667
|
+
tags: [SHIMMER_EFFECT_TAG],
|
|
668
|
+
});
|
|
669
|
+
insertedRunningPids.add(pid);
|
|
670
|
+
}
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
const emitEventCommit = (span: Span, event: Trace.FlatEvent, eventIndex: number): void => {
|
|
444
674
|
const presentation = presentEvent(event, toolCallContext);
|
|
445
675
|
if (!presentation) {
|
|
446
|
-
|
|
676
|
+
return;
|
|
447
677
|
}
|
|
448
678
|
|
|
449
679
|
// Classify based on event TYPE, not array index. A pending span's trailing
|
|
@@ -453,11 +683,16 @@ const spanTreeToCommits = (
|
|
|
453
683
|
const isBeginEvent = isSpanBeginEvent(event);
|
|
454
684
|
const isEndEvent = isSpanEndEvent(event);
|
|
455
685
|
const parentSpan = findParentSpan(span);
|
|
456
|
-
const collapsible = isCollapsibleSpan(span, parentSpan);
|
|
686
|
+
const collapsible = isCollapsibleSpan(span, parentSpan, collapseCompletedSpans);
|
|
457
687
|
|
|
458
|
-
//
|
|
459
|
-
if (
|
|
460
|
-
|
|
688
|
+
// Descendants of a collapsed span emit no commits — inner activity is folded into the ancestor end row.
|
|
689
|
+
if (isUnderCollapsedAncestor(span)) {
|
|
690
|
+
return;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
// Collapsed spans: skip every event except the end commit.
|
|
694
|
+
if (collapsible && !isEndEvent) {
|
|
695
|
+
return;
|
|
461
696
|
}
|
|
462
697
|
|
|
463
698
|
const parentBranch = branchOf(parentSpan);
|
|
@@ -471,7 +706,7 @@ const spanTreeToCommits = (
|
|
|
471
706
|
// mid-stream would flash a throwaway lane.
|
|
472
707
|
const ownPid = span.meta.pid;
|
|
473
708
|
const parentPid = parentSpan?.meta.pid;
|
|
474
|
-
const spanHasMiddle = span.events.some((
|
|
709
|
+
const spanHasMiddle = span.events.some((spanEvent) => !isSpanBeginEvent(spanEvent) && !isSpanEndEvent(spanEvent));
|
|
475
710
|
const isProcessBoundary = ownPid != null && parentPid != null && ownPid !== parentPid && spanHasMiddle;
|
|
476
711
|
|
|
477
712
|
let branch: string;
|
|
@@ -521,7 +756,9 @@ const spanTreeToCommits = (
|
|
|
521
756
|
parents = builder.computeParents(lastInSpanContext(span));
|
|
522
757
|
}
|
|
523
758
|
|
|
524
|
-
const
|
|
759
|
+
const commitIndex = globalIndex++;
|
|
760
|
+
const commitId = formatCommitId(span, commitIndex, presentation.idSuffix);
|
|
761
|
+
const shimmer = shouldShimmerInProgressCommit(event, toolCallContext);
|
|
525
762
|
const commit: Commit = {
|
|
526
763
|
id: commitId,
|
|
527
764
|
branch,
|
|
@@ -530,47 +767,65 @@ const spanTreeToCommits = (
|
|
|
530
767
|
icon: presentation.icon,
|
|
531
768
|
level: presentation.level,
|
|
532
769
|
message: presentation.message,
|
|
770
|
+
...(shimmer && { tags: [SHIMMER_EFFECT_TAG] }),
|
|
533
771
|
};
|
|
534
772
|
builder.addCommit(commit);
|
|
535
773
|
details[commitId] = event;
|
|
774
|
+
lastCommitIdBySpan.set(span.id, commitId);
|
|
536
775
|
|
|
537
776
|
// Record begin commit so a later end event can merge into it.
|
|
538
777
|
if (isBeginEvent && !collapsible && span.id !== ROOT_SPAN_ID) {
|
|
539
778
|
beginCommitIdBySpan.set(span.id, commitId);
|
|
540
779
|
}
|
|
541
|
-
}
|
|
780
|
+
};
|
|
542
781
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
if (
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
782
|
+
const finishSpan = (span: Span): void => {
|
|
783
|
+
const pid = span.meta.pid;
|
|
784
|
+
if (pid) {
|
|
785
|
+
// Trace.Meta.pid is plain string (avoids circular dep); construct brand here.
|
|
786
|
+
emitRunningIndicator(Process.ID.make(pid));
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
if (span.id === ROOT_SPAN_ID || isCompletedSpan(span)) {
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
if (pid && insertedRunningPids.has(pid)) {
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
const lastCommitId = lastCommitIdBySpan.get(span.id);
|
|
798
|
+
if (lastCommitId) {
|
|
799
|
+
builder.addTag(lastCommitId, SHIMMER_EFFECT_TAG);
|
|
800
|
+
}
|
|
801
|
+
};
|
|
802
|
+
|
|
803
|
+
const emitSpanCommits = (span: Span): void => {
|
|
804
|
+
for (let eventIndex = 0; eventIndex < span.events.length; eventIndex += 1) {
|
|
805
|
+
const event = span.events[eventIndex]!;
|
|
806
|
+
if (isSpanBeginEvent(event)) {
|
|
807
|
+
emitEventCommit(span, event, eventIndex);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
for (const child of span.children) {
|
|
812
|
+
emitSpanCommits(child);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
for (let eventIndex = 0; eventIndex < span.events.length; eventIndex += 1) {
|
|
816
|
+
const event = span.events[eventIndex]!;
|
|
817
|
+
if (!isSpanBeginEvent(event)) {
|
|
818
|
+
emitEventCommit(span, event, eventIndex);
|
|
819
|
+
}
|
|
573
820
|
}
|
|
821
|
+
|
|
822
|
+
finishSpan(span);
|
|
823
|
+
};
|
|
824
|
+
|
|
825
|
+
emitSpanCommits(root);
|
|
826
|
+
|
|
827
|
+
for (const process of activeProcesses) {
|
|
828
|
+
emitRunningIndicator(process.pid);
|
|
574
829
|
}
|
|
575
830
|
|
|
576
831
|
const { commits, branches } = builder.build();
|
|
@@ -740,6 +995,18 @@ class GraphBuilder {
|
|
|
740
995
|
this.#commits.push(commit);
|
|
741
996
|
}
|
|
742
997
|
|
|
998
|
+
addTag(commitId: string, tag: string) {
|
|
999
|
+
const index = this.#commits.findIndex((commit) => commit.id === commitId);
|
|
1000
|
+
if (index < 0) {
|
|
1001
|
+
return;
|
|
1002
|
+
}
|
|
1003
|
+
const commit = this.#commits[index]!;
|
|
1004
|
+
if (commit.tags?.includes(tag)) {
|
|
1005
|
+
return;
|
|
1006
|
+
}
|
|
1007
|
+
this.#commits[index] = { ...commit, tags: [...(commit.tags ?? []), tag] };
|
|
1008
|
+
}
|
|
1009
|
+
|
|
743
1010
|
/**
|
|
744
1011
|
* Computes parents — picks first matching commit's id.
|
|
745
1012
|
*/
|
|
@@ -3,22 +3,32 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
export {
|
|
6
|
-
CommitSelector,
|
|
7
|
-
buildExecutionGraph,
|
|
8
6
|
type BuildExecutionGraphParams,
|
|
7
|
+
type CollectProcessActivityOptions,
|
|
8
|
+
CommitSelector,
|
|
9
9
|
type ExecutionGraph,
|
|
10
10
|
type ExecutionGraphDetailsMap,
|
|
11
|
+
buildExecutionGraph,
|
|
12
|
+
collectProcessActivityLines,
|
|
13
|
+
deriveInFlightActivityLine,
|
|
11
14
|
} from './execution-graph';
|
|
15
|
+
export {
|
|
16
|
+
type EphemeralStatusUpdate,
|
|
17
|
+
estimateTokenCount,
|
|
18
|
+
formatPendingBlockStatus,
|
|
19
|
+
pendingStatusFromEphemeralMessage,
|
|
20
|
+
resolveEphemeralStatusUpdate,
|
|
21
|
+
} from './pending-block-status';
|
|
12
22
|
export {
|
|
13
23
|
BEGIN_EVENT_TYPES,
|
|
24
|
+
type BuildSpanTreeOptions,
|
|
14
25
|
END_EVENT_TYPES,
|
|
15
26
|
ROOT_SPAN_ID,
|
|
27
|
+
type Span,
|
|
28
|
+
type SpanMeta,
|
|
16
29
|
buildSpanTree,
|
|
17
30
|
flattenSpanTree,
|
|
18
31
|
isSpanBeginEvent,
|
|
19
32
|
isSpanEndEvent,
|
|
20
33
|
walkSpanTree,
|
|
21
|
-
type BuildSpanTreeOptions,
|
|
22
|
-
type Span,
|
|
23
|
-
type SpanMeta,
|
|
24
34
|
} from './span-tree';
|