@mastra/playground-ui 61.0.0-alpha.1 → 61.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{code-BeWhOFT4.js → code-C8akLzcu.js} +12 -9
- package/dist/code-C8akLzcu.js.map +1 -0
- package/dist/{code-B-x-9sJ1.cjs → code-D_sH618U.cjs} +12 -9
- package/dist/code-D_sH618U.cjs.map +1 -0
- package/dist/{code-block-C04dJD3G.js → code-block-CXZNO_qi.js} +2 -2
- package/dist/{code-block-C04dJD3G.js.map → code-block-CXZNO_qi.js.map} +1 -1
- package/dist/{code-block-CMI2oLXm.cjs → code-block-z2hVcNq7.cjs} +2 -2
- package/dist/{code-block-CMI2oLXm.cjs.map → code-block-z2hVcNq7.cjs.map} +1 -1
- package/dist/components/ChatShell.cjs.js +6 -5
- package/dist/components/ChatShell.cjs.js.map +1 -1
- package/dist/components/ChatShell.es.js +6 -5
- package/dist/components/ChatShell.es.js.map +1 -1
- package/dist/components/Code.cjs.js +1 -1
- package/dist/components/Code.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +1 -1
- package/dist/components/DataDetailsPanel.es.js +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.es.js +1 -1
- package/dist/components/Workflow.cjs.js +1 -1
- package/dist/components/Workflow.es.js +1 -1
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/{data-code-section-DIj4CMvD.cjs → data-code-section-BK0bftM-.cjs} +2 -2
- package/dist/{data-code-section-DIj4CMvD.cjs.map → data-code-section-BK0bftM-.cjs.map} +1 -1
- package/dist/{data-code-section-K-2Bj1zO.js → data-code-section-yMYmVciV.js} +2 -2
- package/dist/{data-code-section-K-2Bj1zO.js.map → data-code-section-yMYmVciV.js.map} +1 -1
- package/dist/{data-panel-CKvpHRUM.js → data-panel-GT4fMXR0.js} +2 -2
- package/dist/{data-panel-CKvpHRUM.js.map → data-panel-GT4fMXR0.js.map} +1 -1
- package/dist/{data-panel-YCvno_Di.cjs → data-panel-mzQKwVkT.cjs} +2 -2
- package/dist/{data-panel-YCvno_Di.cjs.map → data-panel-mzQKwVkT.cjs.map} +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -0
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -0
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -0
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -0
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/{markdown-renderer-DRo-Hcuu.cjs → markdown-renderer-4iyMU2Cm.cjs} +2 -2
- package/dist/{markdown-renderer-DRo-Hcuu.cjs.map → markdown-renderer-4iyMU2Cm.cjs.map} +1 -1
- package/dist/{markdown-renderer-XfWPF-B7.js → markdown-renderer-B3Pf1uW9.js} +2 -2
- package/dist/{markdown-renderer-XfWPF-B7.js.map → markdown-renderer-B3Pf1uW9.js.map} +1 -1
- package/dist/{message-scroller-E05PLPmT.cjs → message-scroller-D-_KN9Fv.cjs} +3 -1
- package/dist/message-scroller-D-_KN9Fv.cjs.map +1 -0
- package/dist/{message-scroller-CiFr8MwT.js → message-scroller-WWaQ-XU_.js} +3 -1
- package/dist/message-scroller-WWaQ-XU_.js.map +1 -0
- package/dist/{plan-BBf7ONr7.cjs → plan-D49plJdQ.cjs} +2 -2
- package/dist/{plan-BBf7ONr7.cjs.map → plan-D49plJdQ.cjs.map} +1 -1
- package/dist/{plan-BgvXKTEM.js → plan-DvkySMRk.js} +2 -2
- package/dist/{plan-BgvXKTEM.js.map → plan-DvkySMRk.js.map} +1 -1
- package/dist/{reasoning-activity-Dc6VbiMr.cjs → reasoning-activity-COiiln9U.cjs} +2 -2
- package/dist/{reasoning-activity-Dc6VbiMr.cjs.map → reasoning-activity-COiiln9U.cjs.map} +1 -1
- package/dist/{reasoning-activity-DTmKCDZ-.js → reasoning-activity-r7B4_j4d.js} +2 -2
- package/dist/{reasoning-activity-DTmKCDZ-.js.map → reasoning-activity-r7B4_j4d.js.map} +1 -1
- package/dist/{span-payload-primitives-188dDV5s.js → span-payload-primitives-DceLKTQK.js} +2 -2
- package/dist/{span-payload-primitives-188dDV5s.js.map → span-payload-primitives-DceLKTQK.js.map} +1 -1
- package/dist/{span-payload-primitives-DrKJXIc3.cjs → span-payload-primitives-DqeZJkw3.cjs} +2 -2
- package/dist/{span-payload-primitives-DrKJXIc3.cjs.map → span-payload-primitives-DqeZJkw3.cjs.map} +1 -1
- package/dist/src/ds/components/ChatShell/chat-shell.d.ts +13 -8
- package/dist/src/ds/components/Code/code.d.ts +1 -1
- package/dist/style.css +30 -6
- package/dist/{tool-call-arguments-Cm5qfywz.js → tool-call-arguments-DQv3oaEC.js} +3 -3
- package/dist/{tool-call-arguments-Cm5qfywz.js.map → tool-call-arguments-DQv3oaEC.js.map} +1 -1
- package/dist/{tool-call-arguments-cML2FFBk.cjs → tool-call-arguments-DdO3E60i.cjs} +3 -3
- package/dist/{tool-call-arguments-cML2FFBk.cjs.map → tool-call-arguments-DdO3E60i.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-IZ-er4hs.js → use-workflow-graph-runtime-BF_NZEkj.js} +2 -2
- package/dist/{use-workflow-graph-runtime-IZ-er4hs.js.map → use-workflow-graph-runtime-BF_NZEkj.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-t17K6Hkf.cjs → use-workflow-graph-runtime-r_OOpvSo.cjs} +2 -2
- package/dist/{use-workflow-graph-runtime-t17K6Hkf.cjs.map → use-workflow-graph-runtime-r_OOpvSo.cjs.map} +1 -1
- package/dist/{workflow-condition-card-CLyskv_B.js → workflow-condition-card-BCSYogql.js} +2 -2
- package/dist/{workflow-condition-card-CLyskv_B.js.map → workflow-condition-card-BCSYogql.js.map} +1 -1
- package/dist/{workflow-condition-card-B_oDiQ6I.cjs → workflow-condition-card-Dlo2PaKV.cjs} +2 -2
- package/dist/{workflow-condition-card-B_oDiQ6I.cjs.map → workflow-condition-card-Dlo2PaKV.cjs.map} +1 -1
- package/package.json +9 -9
- package/dist/code-B-x-9sJ1.cjs.map +0 -1
- package/dist/code-BeWhOFT4.js.map +0 -1
- package/dist/message-scroller-CiFr8MwT.js.map +0 -1
- package/dist/message-scroller-E05PLPmT.cjs.map +0 -1
|
@@ -4,7 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const lucideReact = require('lucide-react');
|
|
5
5
|
const activity = require('./activity-ClKZR5_o.cjs');
|
|
6
6
|
const reasoningVisibility = require('./reasoning-visibility-DXho4jGC.cjs');
|
|
7
|
-
const markdownRenderer = require('./markdown-renderer-
|
|
7
|
+
const markdownRenderer = require('./markdown-renderer-4iyMU2Cm.cjs');
|
|
8
8
|
|
|
9
9
|
function ReasoningActivity({ defaultOpen = true, ...content }) {
|
|
10
10
|
if (!reasoningVisibility.hasVisibleReasoning(content)) return null;
|
|
@@ -31,4 +31,4 @@ function ReasoningActivity({ defaultOpen = true, ...content }) {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
exports.ReasoningActivity = ReasoningActivity;
|
|
34
|
-
//# sourceMappingURL=reasoning-activity-
|
|
34
|
+
//# sourceMappingURL=reasoning-activity-COiiln9U.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-activity-
|
|
1
|
+
{"version":3,"file":"reasoning-activity-COiiln9U.cjs","sources":["../src/ds/components/ai/activity/presets/reasoning-activity.tsx"],"sourcesContent":["import { Brain } from 'lucide-react';\nimport { ActivityItem } from '../activity';\nimport { hasVisibleReasoning } from './reasoning-visibility';\nimport type { ReasoningContent } from './reasoning-visibility';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\nexport interface ReasoningActivityProps extends ReasoningContent {\n defaultOpen?: boolean;\n}\n\nexport function ReasoningActivity({ defaultOpen = true, ...content }: ReasoningActivityProps) {\n if (!hasVisibleReasoning(content)) return null;\n\n const { text, redacted, streaming } = content;\n const body = redacted ? 'Reasoning was redacted by the provider.' : text;\n\n return (\n <ActivityItem\n icon={<Brain aria-hidden />}\n label=\"Reasoning\"\n status={streaming ? 'running' : 'idle'}\n defaultOpen={defaultOpen}\n aria-label=\"Reasoning\"\n >\n {body.trim().length > 0 && (\n <MarkdownRenderer\n className=\"text-caption text-muted-foreground [&_p]:my-0.5\"\n streaming={streaming && !redacted}\n >\n {body}\n </MarkdownRenderer>\n )}\n </ActivityItem>\n );\n}\n"],"names":["hasVisibleReasoning","jsx","ActivityItem","Brain","MarkdownRenderer"],"mappings":";;;;;;;;AAUO,SAAS,kBAAkB,EAAE,WAAA,GAAc,IAAA,EAAM,GAAG,SAAQ,EAA2B;AAC5F,EAAA,IAAI,CAACA,uCAAA,CAAoB,OAAO,CAAA,EAAG,OAAO,IAAA;AAE1C,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,SAAA,EAAU,GAAI,OAAA;AACtC,EAAA,MAAM,IAAA,GAAO,WAAW,yCAAA,GAA4C,IAAA;AAEpE,EAAA,uBACEC,cAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACC,IAAA,kBAAMD,cAAA,CAACE,iBAAA,EAAA,EAAM,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,MACzB,KAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ,YAAY,SAAA,GAAY,MAAA;AAAA,MAChC,WAAA;AAAA,MACA,YAAA,EAAW,WAAA;AAAA,MAEV,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,oBACpBF,cAAA;AAAA,QAACG,iCAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,iDAAA;AAAA,UACV,SAAA,EAAW,aAAa,CAAC,QAAA;AAAA,UAExB,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,GAEJ;AAEJ;;;;"}
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Brain } from 'lucide-react';
|
|
3
3
|
import { g as ActivityItem } from './activity-D0SefV4r.js';
|
|
4
4
|
import { h as hasVisibleReasoning } from './reasoning-visibility-B9rA0AIj.js';
|
|
5
|
-
import { M as MarkdownRenderer } from './markdown-renderer-
|
|
5
|
+
import { M as MarkdownRenderer } from './markdown-renderer-B3Pf1uW9.js';
|
|
6
6
|
|
|
7
7
|
function ReasoningActivity({ defaultOpen = true, ...content }) {
|
|
8
8
|
if (!hasVisibleReasoning(content)) return null;
|
|
@@ -29,4 +29,4 @@ function ReasoningActivity({ defaultOpen = true, ...content }) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
export { ReasoningActivity as R };
|
|
32
|
-
//# sourceMappingURL=reasoning-activity-
|
|
32
|
+
//# sourceMappingURL=reasoning-activity-r7B4_j4d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning-activity-
|
|
1
|
+
{"version":3,"file":"reasoning-activity-r7B4_j4d.js","sources":["../src/ds/components/ai/activity/presets/reasoning-activity.tsx"],"sourcesContent":["import { Brain } from 'lucide-react';\nimport { ActivityItem } from '../activity';\nimport { hasVisibleReasoning } from './reasoning-visibility';\nimport type { ReasoningContent } from './reasoning-visibility';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\nexport interface ReasoningActivityProps extends ReasoningContent {\n defaultOpen?: boolean;\n}\n\nexport function ReasoningActivity({ defaultOpen = true, ...content }: ReasoningActivityProps) {\n if (!hasVisibleReasoning(content)) return null;\n\n const { text, redacted, streaming } = content;\n const body = redacted ? 'Reasoning was redacted by the provider.' : text;\n\n return (\n <ActivityItem\n icon={<Brain aria-hidden />}\n label=\"Reasoning\"\n status={streaming ? 'running' : 'idle'}\n defaultOpen={defaultOpen}\n aria-label=\"Reasoning\"\n >\n {body.trim().length > 0 && (\n <MarkdownRenderer\n className=\"text-caption text-muted-foreground [&_p]:my-0.5\"\n streaming={streaming && !redacted}\n >\n {body}\n </MarkdownRenderer>\n )}\n </ActivityItem>\n );\n}\n"],"names":[],"mappings":";;;;;;AAUO,SAAS,kBAAkB,EAAE,WAAA,GAAc,IAAA,EAAM,GAAG,SAAQ,EAA2B;AAC5F,EAAA,IAAI,CAAC,mBAAA,CAAoB,OAAO,CAAA,EAAG,OAAO,IAAA;AAE1C,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,SAAA,EAAU,GAAI,OAAA;AACtC,EAAA,MAAM,IAAA,GAAO,WAAW,yCAAA,GAA4C,IAAA;AAEpE,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAA,kBAAM,GAAA,CAAC,KAAA,EAAA,EAAM,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,MACzB,KAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ,YAAY,SAAA,GAAY,MAAA;AAAA,MAChC,WAAA;AAAA,MACA,YAAA,EAAW,WAAA;AAAA,MAEV,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,oBACpB,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,iDAAA;AAAA,UACV,SAAA,EAAW,aAAa,CAAC,QAAA;AAAA,UAExB,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,GAEJ;AAEJ;;;;"}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { ChevronRightIcon } from 'lucide-react';
|
|
3
3
|
import { SpanPayloadJson } from './domains/traces/components/span-payload/span-payload-json.es.js';
|
|
4
4
|
import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from './collapsible-BNUn4644.js';
|
|
5
|
-
import { M as MarkdownRenderer } from './markdown-renderer-
|
|
5
|
+
import { M as MarkdownRenderer } from './markdown-renderer-B3Pf1uW9.js';
|
|
6
6
|
import { BadgeWrapper } from './domains/chat/components/badge-wrapper.es.js';
|
|
7
7
|
import { e as ActivityHeadline } from './activity-D0SefV4r.js';
|
|
8
8
|
import { p as presentTool } from './tool-presentation-BXAo24Ir.js';
|
|
@@ -67,4 +67,4 @@ function SpanPayloadToolCalls({ toolCalls }) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export { SpanPayloadField as S, SpanPayloadMarkdown as a, SpanPayloadToolCalls as b, SpanPayloadCollapsible as c, SpanPayloadLabel as d, SpanPayloadTool as e };
|
|
70
|
-
//# sourceMappingURL=span-payload-primitives-
|
|
70
|
+
//# sourceMappingURL=span-payload-primitives-DceLKTQK.js.map
|
package/dist/{span-payload-primitives-188dDV5s.js.map → span-payload-primitives-DceLKTQK.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-payload-primitives-
|
|
1
|
+
{"version":3,"file":"span-payload-primitives-DceLKTQK.js","sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField, SpanPayloadLabel } from './span-payload-primitives';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport function SpanPayloadTool({ value, showLabel = true }: { value: unknown; showLabel?: boolean }) {\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const hasBody = input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n {showLabel && <SpanPayloadLabel>{value.type === 'tool-result' ? 'Tool result' : 'Tool call'}</SpanPayloadLabel>}\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import { ChevronRightIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return <div className=\"text-meta tracking-widest text-placeholder uppercase\">{children}</div>;\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-body text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta tracking-widest text-placeholder uppercase [&>svg]:size-3\">\n <ChevronRightIcon />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} showLabel={false} />\n </li>\n ))}\n </ul>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAMA,MAAM,QAAA,GAAW,CAAC,KAAA,KAChB,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,IAAQ,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAE9D,SAAS,eAAA,CAAgB,EAAE,KAAA,EAAO,SAAA,GAAY,MAAK,EAA4C;AACpG,EAAA,IAAI,CAAC,QAAA,CAAS,KAAK,GAAG,uBAAO,GAAA,CAAC,mBAAgB,KAAA,EAAc,CAAA;AAC5D,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,KAAS,iBAAA,GAAoB,MAAM,cAAA,GAAiB,KAAA;AACvE,EAAA,IAAI,CAAC,QAAA,CAAS,IAAI,CAAA,IAAK,OAAO,KAAK,QAAA,KAAa,QAAA,IAAY,CAAC,IAAA,CAAK,QAAA,EAAU;AAC1E,IAAA,uBAAO,GAAA,CAAC,mBAAgB,KAAA,EAAc,CAAA;AAAA,EACxC;AACA,EAAA,MAAM,KAAA,GAAQ,MAAA,IAAU,IAAA,GAAO,IAAA,CAAK,OAAO,IAAA,CAAK,KAAA;AAChD,EAAA,MAAM,MAAA,GAAS,QAAA,IAAY,IAAA,GAAO,IAAA,CAAK,SAAS,IAAA,CAAK,MAAA;AACrD,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,KAAY,IAAA,IAAQ,KAAK,KAAA,KAAU,cAAA;AACtD,EAAA,MAAM,YAAY,OAAO,IAAA,CAAK,SAAA,KAAc,QAAA,GAAW,KAAK,SAAA,GAAY,MAAA;AACxE,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,MAAA,EAAQ,aAAY,GAAI,WAAA,CAAY,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA;AACvF,EAAA,MAAM,OAAA,GAAU,KAAA,KAAU,MAAA,IAAa,MAAA,KAAW,UAAa,SAAA,KAAc,MAAA;AAC7E,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,mBAAA,EAAoB,WAAU,qBAAA,EAC1C,QAAA,EAAA;AAAA,IAAA,SAAA,wBAAc,gBAAA,EAAA,EAAkB,QAAA,EAAA,KAAA,CAAM,IAAA,KAAS,aAAA,GAAgB,gBAAgB,WAAA,EAAY,CAAA;AAAA,oBAC5F,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,QAAQ,OAAA,GAAU,MAAA;AAAA,QAC1B,MAAA,kBACE,GAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,kBAAM,GAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,IAAA,EAAC,CAAA,EAAI,KAAA,EAAc,MAAA,EAAgB,WAAA,EAA0B,CAAA;AAAA,QAG3G,QAAA,EAAA,OAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,KAAU,MAAA,wBACR,gBAAA,EAAA,EAAiB,KAAA,EAAM,aACtB,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAO,KAAA,EAAO,CAAA,EACjC,CAAA;AAAA,UAED,MAAA,KAAW,MAAA,oBACV,GAAA,CAAC,gBAAA,EAAA,EAAiB,KAAA,EAAM,UACtB,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAO,MAAA,EAAQ,CAAA,EAClC,CAAA;AAAA,UAED,SAAA,KAAc,MAAA,oBACb,GAAA,CAAC,gBAAA,EAAA,EAAiB,KAAA,EAAM,SACtB,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAO,SAAA,EAAW,CAAA,EACrC;AAAA,SAAA,EAEJ;AAAA;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;;AC7CO,SAAS,gBAAA,CAAiB,EAAE,QAAA,EAAS,EAA4B;AACtE,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sDAAA,EAAwD,QAAA,EAAS,CAAA;AACzF;AAEO,SAAS,gBAAA,CAAiB,EAAE,KAAA,EAAO,QAAA,EAAS,EAA8C;AAC/F,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,oBAAA,EAAqB,WAAU,uBAAA,EAC5C,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,oBAAkB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACxB;AAAA,GAAA,EACH,CAAA;AAEJ;AAEO,SAAS,mBAAA,CAAoB,EAAE,QAAA,EAAS,EAAyB;AACtE,EAAA,uBACE,GAAA,CAAC,SAAI,WAAA,EAAU,uBAAA,EAAwB,WAAU,2BAAA,EAC/C,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAkB,QAAA,EAAS,CAAA,EAC9B,CAAA;AAEJ;AAGO,SAAS,sBAAA,CAAuB;AAAA,EACrC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc;AAChB,CAAA,EAIG;AACD,EAAA,uBACE,IAAA,CAAC,eAAY,WAAA,EACX,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,kBAAA,EAAA,EAAmB,WAAU,6FAAA,EAC5B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA;AAAA,MACjB;AAAA,KAAA,EACH,CAAA;AAAA,oBACA,GAAA,CAAC,kBAAA,EAAA,EAAmB,SAAA,EAAU,QAAA,EAAU,QAAA,EAAS;AAAA,GAAA,EACnD,CAAA;AAEJ;AAGO,SAAS,oBAAA,CAAqB,EAAE,SAAA,EAAU,EAA6B;AAC5E,EAAA,uBACE,GAAA,CAAC,QAAG,WAAA,EAAU,yBAAA,EAA0B,WAAU,qBAAA,EAC/C,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,yBACnB,IAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,mBAAgB,KAAA,EAAO,IAAA,EAAM,WAAW,KAAA,EAAO,CAAA,EAAA,EADzC,KAET,CACD,CAAA,EACH,CAAA;AAEJ;;;;"}
|
|
@@ -4,7 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const lucideReact = require('lucide-react');
|
|
5
5
|
const domains_traces_components_spanPayload_spanPayloadJson = require('./domains/traces/components/span-payload/span-payload-json.cjs.js');
|
|
6
6
|
const collapsible = require('./collapsible-jfzzU7Gp.cjs');
|
|
7
|
-
const markdownRenderer = require('./markdown-renderer-
|
|
7
|
+
const markdownRenderer = require('./markdown-renderer-4iyMU2Cm.cjs');
|
|
8
8
|
const domains_chat_components_badgeWrapper = require('./domains/chat/components/badge-wrapper.cjs.js');
|
|
9
9
|
const activity = require('./activity-ClKZR5_o.cjs');
|
|
10
10
|
const toolPresentation = require('./tool-presentation-WLS6d1ws.cjs');
|
|
@@ -74,4 +74,4 @@ exports.SpanPayloadLabel = SpanPayloadLabel;
|
|
|
74
74
|
exports.SpanPayloadMarkdown = SpanPayloadMarkdown;
|
|
75
75
|
exports.SpanPayloadTool = SpanPayloadTool;
|
|
76
76
|
exports.SpanPayloadToolCalls = SpanPayloadToolCalls;
|
|
77
|
-
//# sourceMappingURL=span-payload-primitives-
|
|
77
|
+
//# sourceMappingURL=span-payload-primitives-DqeZJkw3.cjs.map
|
package/dist/{span-payload-primitives-DrKJXIc3.cjs.map → span-payload-primitives-DqeZJkw3.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-payload-primitives-
|
|
1
|
+
{"version":3,"file":"span-payload-primitives-DqeZJkw3.cjs","sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField, SpanPayloadLabel } from './span-payload-primitives';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport function SpanPayloadTool({ value, showLabel = true }: { value: unknown; showLabel?: boolean }) {\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const hasBody = input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n {showLabel && <SpanPayloadLabel>{value.type === 'tool-result' ? 'Tool result' : 'Tool call'}</SpanPayloadLabel>}\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import { ChevronRightIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return <div className=\"text-meta tracking-widest text-placeholder uppercase\">{children}</div>;\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-body text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta tracking-widest text-placeholder uppercase [&>svg]:size-3\">\n <ChevronRightIcon />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} showLabel={false} />\n </li>\n ))}\n </ul>\n );\n}\n"],"names":["jsx","SpanPayloadJson","presentTool","jsxs","BadgeWrapper","ActivityHeadline","MarkdownRenderer","Collapsible","CollapsibleTrigger","ChevronRightIcon","CollapsibleContent"],"mappings":"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"}
|
|
@@ -11,9 +11,10 @@ export type ChatShellProps = ComponentPropsWithoutRef<'div'> & {
|
|
|
11
11
|
* width), `--chat-surface` (the colour the composer veil ramps to — the shell
|
|
12
12
|
* paints no fill of its own and inherits whatever surface hosts it, so this has
|
|
13
13
|
* to name that same surface), `--chat-fade` (the band the veil ramps in
|
|
14
|
-
* across, above the composer), `--chat-veil` (strongest it
|
|
15
|
-
*
|
|
16
|
-
* `--chat-
|
|
14
|
+
* across, above the composer), `--chat-veil` (strongest it gets, opaque by
|
|
15
|
+
* default so nothing reads under the composer), `--chat-gutter` (room below the
|
|
16
|
+
* composer), `--chat-edge` (room on both sides, so the scrollbar never overlaps
|
|
17
|
+
* the composer), `--chat-inset-end` (room an overlay panel claims on the end edge).
|
|
17
18
|
*/
|
|
18
19
|
export declare function ChatShellRoot({ className, scroller, ...props }: ChatShellProps): import("react").JSX.Element;
|
|
19
20
|
/**
|
|
@@ -25,7 +26,12 @@ export declare function ChatShellBar({ className, ...props }: ComponentPropsWith
|
|
|
25
26
|
export declare function ChatShellStage({ className, ...props }: ComponentPropsWithoutRef<'div'>): import("react").JSX.Element;
|
|
26
27
|
/**
|
|
27
28
|
* The one scroll container. It takes the end inset itself — on an ancestor the
|
|
28
|
-
* same room would drag the scrollbar inward, off the true edge.
|
|
29
|
+
* same room would drag the scrollbar inward, off the true edge. No overscroll
|
|
30
|
+
* bounce on either axis: the dock is sticky inside this box, so the rubber band
|
|
31
|
+
* would carry the composer off its edge along with the transcript.
|
|
32
|
+
*
|
|
33
|
+
* The same edge room on both sides keeps the scrollbar clear of the composer and
|
|
34
|
+
* the column centred, with a matching gutter for classic scrollbars.
|
|
29
35
|
*/
|
|
30
36
|
export declare function ChatShellViewport({ className, children, ...props }: MessageScrollerViewportProps): import("react").JSX.Element;
|
|
31
37
|
/** Scrolling content. The air above the composer belongs to the dock's fade band. */
|
|
@@ -54,10 +60,9 @@ export declare function ChatShellTurn({ opensTurn, holdsRoom, restored, classNam
|
|
|
54
60
|
* transcript scrolls behind, so nothing measures it and a composer growing under
|
|
55
61
|
* the cursor resizes no box the scroller watches.
|
|
56
62
|
*
|
|
57
|
-
* Behind it, one sheet of the page masked in over `--chat-fade` of air
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* it tops out behind the card and its end never shows.
|
|
63
|
+
* Behind it, one sheet of the page masked in over `--chat-fade` of air, reaching
|
|
64
|
+
* `--chat-veil` at the dock's top edge. The transcript fades out above the
|
|
65
|
+
* composer and nothing shows through around or under the card.
|
|
61
66
|
*/
|
|
62
67
|
export declare function ChatShellDock({ className, ...props }: ComponentPropsWithoutRef<'div'>): import("react").JSX.Element;
|
|
63
68
|
/**
|
|
@@ -13,7 +13,7 @@ export interface CodeProps extends React.HTMLAttributes<HTMLPreElement> {
|
|
|
13
13
|
* required. Renders plain text while highlighting is pending or when the
|
|
14
14
|
* language is missing/unknown.
|
|
15
15
|
*
|
|
16
|
-
* A streaming fence re-renders on every delta while highlighting stays a
|
|
16
|
+
* A streaming fence re-renders on every delta while highlighting stays a sample
|
|
17
17
|
* behind. Dropping the previous tokens each time would strobe the whole block
|
|
18
18
|
* between colored and plain, so the settled prefix keeps its colors and only
|
|
19
19
|
* the newly arrived tail waits, uncolored, for the next pass.
|
package/dist/style.css
CHANGED
|
@@ -3743,6 +3743,10 @@
|
|
|
3743
3743
|
scroll-padding-block: calc(var(--spacing) * 8);
|
|
3744
3744
|
}
|
|
3745
3745
|
|
|
3746
|
+
.\[scrollbar-gutter\:stable_both-edges\] {
|
|
3747
|
+
scrollbar-gutter: stable both-edges;
|
|
3748
|
+
}
|
|
3749
|
+
|
|
3746
3750
|
.list-disc {
|
|
3747
3751
|
list-style-type: disc;
|
|
3748
3752
|
}
|
|
@@ -4309,6 +4313,10 @@
|
|
|
4309
4313
|
overscroll-behavior: contain;
|
|
4310
4314
|
}
|
|
4311
4315
|
|
|
4316
|
+
.overscroll-none {
|
|
4317
|
+
overscroll-behavior: none;
|
|
4318
|
+
}
|
|
4319
|
+
|
|
4312
4320
|
.rounded {
|
|
4313
4321
|
border-radius: .25rem;
|
|
4314
4322
|
}
|
|
@@ -5916,10 +5924,18 @@
|
|
|
5916
5924
|
padding-block: 1px;
|
|
5917
5925
|
}
|
|
5918
5926
|
|
|
5927
|
+
.ps-\(--chat-edge\) {
|
|
5928
|
+
padding-inline-start: var(--chat-edge);
|
|
5929
|
+
}
|
|
5930
|
+
|
|
5919
5931
|
.pe-\(--chat-inset-end\) {
|
|
5920
5932
|
padding-inline-end: var(--chat-inset-end);
|
|
5921
5933
|
}
|
|
5922
5934
|
|
|
5935
|
+
.pe-\[calc\(var\(--chat-edge\)\+var\(--chat-inset-end\)\)\] {
|
|
5936
|
+
padding-inline-end: calc(var(--chat-edge) + var(--chat-inset-end));
|
|
5937
|
+
}
|
|
5938
|
+
|
|
5923
5939
|
.pt-0 {
|
|
5924
5940
|
padding-top: 0;
|
|
5925
5941
|
}
|
|
@@ -7377,8 +7393,12 @@
|
|
|
7377
7393
|
--chat-column: 48rem;
|
|
7378
7394
|
}
|
|
7379
7395
|
|
|
7380
|
-
.\[--chat-
|
|
7381
|
-
--chat-
|
|
7396
|
+
.\[--chat-edge\:0\.5rem\] {
|
|
7397
|
+
--chat-edge: .5rem;
|
|
7398
|
+
}
|
|
7399
|
+
|
|
7400
|
+
.\[--chat-fade\:2rem\] {
|
|
7401
|
+
--chat-fade: 2rem;
|
|
7382
7402
|
}
|
|
7383
7403
|
|
|
7384
7404
|
.\[--chat-gutter\:0\.75rem\] {
|
|
@@ -7397,6 +7417,10 @@
|
|
|
7397
7417
|
--chat-veil: 70%;
|
|
7398
7418
|
}
|
|
7399
7419
|
|
|
7420
|
+
.\[--chat-veil\:100\%\] {
|
|
7421
|
+
--chat-veil: 100%;
|
|
7422
|
+
}
|
|
7423
|
+
|
|
7400
7424
|
.\[--chat-veil\:color-mix\(in_oklab\,var\(--chat-surface\)_70\%\,transparent\)\] {
|
|
7401
7425
|
--chat-veil: var(--chat-surface);
|
|
7402
7426
|
}
|
|
@@ -8284,11 +8308,11 @@
|
|
|
8284
8308
|
mask-composite: intersect;
|
|
8285
8309
|
}
|
|
8286
8310
|
|
|
8287
|
-
.before\:\[mask-image\:linear-gradient\(to_bottom\,transparent\,rgb\(0_0_0\/var\(--chat-veil\)\)
|
|
8311
|
+
.before\:\[mask-image\:linear-gradient\(to_bottom\,transparent\,rgb\(0_0_0\/var\(--chat-veil\)\)_var\(--chat-fade\)\)\]:before {
|
|
8288
8312
|
content: var(--tw-content);
|
|
8289
|
-
-webkit-mask-image: linear-gradient(to bottom,transparent,rgb(0 0 0 / var(--chat-veil))
|
|
8290
|
-
-webkit-mask-image: linear-gradient(to bottom,transparent,rgb(0 0 0 / var(--chat-veil))
|
|
8291
|
-
mask-image: linear-gradient(to bottom,transparent,rgb(0 0 0 / var(--chat-veil))
|
|
8313
|
+
-webkit-mask-image: linear-gradient(to bottom,transparent,rgb(0 0 0 / var(--chat-veil)) var(--chat-fade));
|
|
8314
|
+
-webkit-mask-image: linear-gradient(to bottom,transparent,rgb(0 0 0 / var(--chat-veil)) var(--chat-fade));
|
|
8315
|
+
mask-image: linear-gradient(to bottom,transparent,rgb(0 0 0 / var(--chat-veil)) var(--chat-fade));
|
|
8292
8316
|
}
|
|
8293
8317
|
|
|
8294
8318
|
.before\:transition-colors:before {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { u as useHighlight, t as tokenStyle } from './code-
|
|
3
|
-
import { C as CodeBlock } from './code-block-
|
|
2
|
+
import { u as useHighlight, t as tokenStyle } from './code-C8akLzcu.js';
|
|
3
|
+
import { C as CodeBlock } from './code-block-CXZNO_qi.js';
|
|
4
4
|
import { l as languageForPath } from './highlight-BmpoELR4.js';
|
|
5
5
|
import { truncateString } from './utils/truncate-string.es.js';
|
|
6
6
|
import { c as cn } from './cn-65Adrsfj.js';
|
|
@@ -71,4 +71,4 @@ function ToolCallArguments({ "data-testid": testId, ...input }) {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
export { ToolCallArguments as T, ToolCallEdit as a };
|
|
74
|
-
//# sourceMappingURL=tool-call-arguments-
|
|
74
|
+
//# sourceMappingURL=tool-call-arguments-DQv3oaEC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-arguments-
|
|
1
|
+
{"version":3,"file":"tool-call-arguments-DQv3oaEC.js","sources":["../src/ds/components/ai/tool-call/tool-call-edit.tsx","../src/ds/components/ai/tool-call/tool-call-arguments.tsx"],"sourcesContent":["import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-destructive-subtle', gutter: 'text-destructive-subtle-foreground' },\n added: { sign: '+', row: 'bg-success-subtle', gutter: 'text-success-subtle-foreground' },\n} as const;\n\nfunction boundedLines(text: string): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"flex-1 pr-2.5 text-foreground\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit }: { edit: ToolEdit }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText);\n const added = boundedLines(edit.newText);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className=\"max-w-full min-w-0 overflow-x-auto rounded-md border border-border bg-fill font-mono text-caption\"\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"px-2.5 py-1 text-muted-foreground select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { ToolCallEdit } from './tool-call-edit';\nimport { ToolCallMono } from './tool-call-mono';\nimport { toolEdit, visibleToolArgumentsText } from './tool-presentation';\nimport type { ToolArgumentsInput } from './tool-presentation';\n\nexport interface ToolCallArgumentsProps extends ToolArgumentsInput {\n 'data-testid'?: string;\n}\n\nexport function ToolCallArguments({ 'data-testid': testId, ...input }: ToolCallArgumentsProps) {\n const edit = toolEdit(input.toolName, input.args);\n if (edit) return <ToolCallEdit edit={edit} />;\n\n const text = visibleToolArgumentsText(input);\n if (!text) return null;\n\n return (\n <ToolCallMono copyText={text} data-testid={testId} className=\"text-foreground\">\n {text}\n </ToolCallMono>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const code = require('./code-
|
|
5
|
-
const codeBlock = require('./code-block-
|
|
4
|
+
const code = require('./code-D_sH618U.cjs');
|
|
5
|
+
const codeBlock = require('./code-block-z2hVcNq7.cjs');
|
|
6
6
|
const highlight = require('./highlight-DK1dn-Fh.cjs');
|
|
7
7
|
const utils_truncateString = require('./utils/truncate-string.cjs.js');
|
|
8
8
|
const utils_cn = require('./cn-DG0X1KEP.cjs');
|
|
@@ -74,4 +74,4 @@ function ToolCallArguments({ "data-testid": testId, ...input }) {
|
|
|
74
74
|
|
|
75
75
|
exports.ToolCallArguments = ToolCallArguments;
|
|
76
76
|
exports.ToolCallEdit = ToolCallEdit;
|
|
77
|
-
//# sourceMappingURL=tool-call-arguments-
|
|
77
|
+
//# sourceMappingURL=tool-call-arguments-DdO3E60i.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-arguments-
|
|
1
|
+
{"version":3,"file":"tool-call-arguments-DdO3E60i.cjs","sources":["../src/ds/components/ai/tool-call/tool-call-edit.tsx","../src/ds/components/ai/tool-call/tool-call-arguments.tsx"],"sourcesContent":["import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-destructive-subtle', gutter: 'text-destructive-subtle-foreground' },\n added: { sign: '+', row: 'bg-success-subtle', gutter: 'text-success-subtle-foreground' },\n} as const;\n\nfunction boundedLines(text: string): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"flex-1 pr-2.5 text-foreground\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit }: { edit: ToolEdit }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText);\n const added = boundedLines(edit.newText);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className=\"max-w-full min-w-0 overflow-x-auto rounded-md border border-border bg-fill font-mono text-caption\"\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"px-2.5 py-1 text-muted-foreground select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { ToolCallEdit } from './tool-call-edit';\nimport { ToolCallMono } from './tool-call-mono';\nimport { toolEdit, visibleToolArgumentsText } from './tool-presentation';\nimport type { ToolArgumentsInput } from './tool-presentation';\n\nexport interface ToolCallArgumentsProps extends ToolArgumentsInput {\n 'data-testid'?: string;\n}\n\nexport function ToolCallArguments({ 'data-testid': testId, ...input }: ToolCallArgumentsProps) {\n const edit = toolEdit(input.toolName, input.args);\n if (edit) return <ToolCallEdit edit={edit} />;\n\n const text = visibleToolArgumentsText(input);\n if (!text) return null;\n\n return (\n <ToolCallMono copyText={text} data-testid={testId} className=\"text-foreground\">\n {text}\n </ToolCallMono>\n );\n}\n"],"names":["code","useHighlight","jsx","Fragment","jsxs","cn","tokenStyle","languageForPath","CodeBlock","truncateString","toolEdit","visibleToolArgumentsText","ToolCallMono"],"mappings":"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"}
|
package/dist/{use-workflow-graph-runtime-IZ-er4hs.js → use-workflow-graph-runtime-BF_NZEkj.js}
RENAMED
|
@@ -15,7 +15,7 @@ import { Repeat2 } from 'lucide-react';
|
|
|
15
15
|
import { useWorkflowGraphNodes } from './domains/workflows/workflow/use-workflow-graph-nodes.es.js';
|
|
16
16
|
import { WORKFLOW_STEP_NODE_TYPE } from './domains/workflows/workflow/workflow-step-node-utils.es.js';
|
|
17
17
|
import { W as WORKFLOW_BOUNDARY_NODE_TYPE, a as WORKFLOW_DATA_EDGE_TYPE } from './types-CvneO3z0.js';
|
|
18
|
-
import { e as WorkflowGraphCanvas, f as WorkflowNodeFrame, c as WorkflowConditionCard, g as WorkflowStepCardView, W as WorkflowBoundaryNode } from './workflow-condition-card-
|
|
18
|
+
import { e as WorkflowGraphCanvas, f as WorkflowNodeFrame, c as WorkflowConditionCard, g as WorkflowStepCardView, W as WorkflowBoundaryNode } from './workflow-condition-card-BCSYogql.js';
|
|
19
19
|
import { WorkflowGraphBoundary } from './domains/workflows/workflow/workflow-graph-boundary.es.js';
|
|
20
20
|
import { getWorkflowGraphGroups } from './domains/workflows/workflow/workflow-graph-groups.es.js';
|
|
21
21
|
import { getWorkflowIterationScopes } from './domains/workflows/workflow/workflow-iteration-scopes.es.js';
|
|
@@ -294,4 +294,4 @@ const useWorkflowGraphRuntime = ({
|
|
|
294
294
|
};
|
|
295
295
|
|
|
296
296
|
export { WorkflowNestedGraph as W, WorkflowBodyGraph as a, WorkflowGraphNode as b, useWorkflowGraphRuntime as u };
|
|
297
|
-
//# sourceMappingURL=use-workflow-graph-runtime-
|
|
297
|
+
//# sourceMappingURL=use-workflow-graph-runtime-BF_NZEkj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-workflow-graph-runtime-IZ-er4hs.js","sources":["../src/domains/workflows/workflow/workflow-nested-graph.tsx","../src/domains/workflows/workflow/workflow-body-graph.tsx","../src/domains/workflows/workflow/workflow-graph-node.tsx","../src/domains/workflows/workflow/use-workflow-graph-runtime.tsx"],"sourcesContent":["import type { SerializedStepFlowEntry } from '@mastra/core/workflows';\n\nimport { useMemo, useState } from 'react';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { useWorkflowGraphNodes } from './use-workflow-graph-nodes';\nimport { useWorkflowGraphRuntime } from './use-workflow-graph-runtime';\nimport { WorkflowGraphBoundary } from './workflow-graph-boundary';\nimport { getWorkflowGraphGroups } from './workflow-graph-groups';\nimport { getWorkflowIterationScopes } from './workflow-iteration-scopes';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { Txt } from '@/ds/components/Txt';\nimport { WorkflowGraphCanvas, WORKFLOW_BOUNDARY_NODE_TYPE } from '@/ds/components/Workflow';\n\nexport interface WorkflowNestedGraphProps {\n stepGraph: SerializedStepFlowEntry[];\n workflowName: string;\n isForEach?: boolean;\n embedded?: boolean;\n requestContext: Record<string, any>;\n}\n\nexport function WorkflowNestedGraph(props: WorkflowNestedGraphProps) {\n const layoutKey = useMemo(\n () => `${props.workflowName}:${JSON.stringify(props.stepGraph)}`,\n [props.workflowName, props.stepGraph],\n );\n return (\n <WorkflowGraphBoundary key={layoutKey} stepGraph={props.stepGraph}>\n <WorkflowNestedGraphContent {...props} />\n </WorkflowGraphBoundary>\n );\n}\n\nfunction WorkflowNestedGraphContent({\n stepGraph,\n workflowName,\n isForEach,\n embedded,\n requestContext,\n}: WorkflowNestedGraphProps) {\n const { nodes, edges, onNodesChange } = useWorkflowGraphNodes(stepGraph);\n const { steps } = useCurrentRun();\n const iterations = getWorkflowIterationScopes(Object.keys(steps), workflowName);\n const [selectedIteration, setSelectedIteration] = useState<string>();\n const activeIteration = iterations.find(iteration => iteration.value === selectedIteration) ?? iterations[0];\n\n const { edgeTypes, nodeTypes, styledEdges } = useWorkflowGraphRuntime({\n edges,\n workflowName: activeIteration?.value ?? workflowName,\n requestContext,\n });\n\n const labeledNodes = useMemo(\n () =>\n nodes.map(node => {\n if (!isForEach || node.type !== WORKFLOW_BOUNDARY_NODE_TYPE) return node;\n const label = node.data.boundaryRole === 'start' ? 'Each item' : 'Item result';\n return { ...node, data: { ...node.data, label } };\n }),\n [nodes, isForEach],\n );\n const groups = useMemo(() => getWorkflowGraphGroups(nodes), [nodes]);\n\n return (\n <div className=\"relative flex size-full flex-col\">\n {activeIteration && (\n <div className=\"nodrag nopan flex items-center gap-3 border-b border-border px-4 py-2\">\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n Iteration\n </Txt>\n <Select value={activeIteration.value} onValueChange={setSelectedIteration} items={iterations}>\n <SelectTrigger aria-label=\"Loop item\" size=\"sm\" className=\"w-36\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {iterations.map(iteration => (\n <SelectItem key={iteration.value} value={iteration.value}>\n {iteration.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )}\n <div className=\"min-h-0 flex-1\">\n <WorkflowGraphCanvas\n variant={embedded ? 'inline' : 'nested'}\n groups={groups}\n nodes={labeledNodes}\n edges={styledEdges}\n edgeTypes={edgeTypes}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n />\n </div>\n </div>\n );\n}\n","import type { SerializedStepFlowEntry } from '@mastra/core/workflows';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { Repeat2 } from 'lucide-react';\nimport { WorkflowNestedGraph } from './workflow-nested-graph';\nimport { Txt } from '@/ds/components/Txt';\n\nexport function WorkflowBodyGraph({\n stepGraph,\n workflowName,\n isForEach,\n requestContext,\n}: {\n stepGraph: SerializedStepFlowEntry[];\n workflowName: string;\n isForEach?: boolean;\n requestContext: Record<string, any>;\n}) {\n return (\n <section aria-label={isForEach ? 'Loop body' : 'Nested workflow'} className=\"flex h-full min-h-0 flex-col\">\n {isForEach && (\n <div className=\"flex shrink-0 items-start gap-2 px-4 py-3 text-muted-foreground\">\n <Repeat2 aria-hidden className=\"mt-0.5 size-4 shrink-0 text-muted-foreground\" />\n <Txt variant=\"meta\">Runs for every item. All items finish before the workflow continues.</Txt>\n </div>\n )}\n <div className=\"min-h-0 flex-1 overflow-hidden\">\n <ReactFlowProvider>\n <WorkflowNestedGraph\n stepGraph={stepGraph}\n embedded\n workflowName={workflowName}\n isForEach={isForEach}\n requestContext={requestContext}\n />\n </ReactFlowProvider>\n </div>\n </section>\n );\n}\n","import type { NodeProps } from '@xyflow/react';\n\nimport { useCurrentRun } from '../context/use-current-run';\nimport type { Step } from '../context/use-current-run';\nimport { useWorkflowSelectedStep } from '../context/use-workflow-selected-step';\nimport { useWorkflowStepDetail } from '../context/workflow-step-detail-context';\nimport { isAwaitingInput, resolveStepSpan } from '../context/workflow-step-timing';\nimport { useWaitingStepKey } from './use-workflow-trigger';\nimport { WorkflowBodyGraph } from './workflow-body-graph';\nimport { getWorkflowCardKind } from './workflow-node-kind';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\nimport type { WorkflowStepNode, WorkflowStepNodeData } from './workflow-step-node-utils';\nimport { WorkflowNodeFrame, WorkflowConditionCard, WorkflowStepCardView } from '@/ds/components/Workflow';\nimport type { WorkflowCardDisplayStatus } from '@/ds/components/Workflow';\n\nexport interface WorkflowGraphNodeProps {\n parentWorkflowName?: string;\n stepsFlow: Record<string, string[]>;\n requestContext: Record<string, any>;\n}\n\nconst getDisplayStatus = (step?: Step): { displayStatus: WorkflowCardDisplayStatus; isTripwire: boolean } => {\n const isTripwire = step?.status === 'failed' && step?.tripwire !== undefined;\n const displayStatus = step && isAwaitingInput(step) ? 'suspended' : step?.status;\n return {\n displayStatus: isTripwire ? 'tripwire' : displayStatus,\n isTripwire,\n };\n};\n\nconst WorkflowStepCard = ({\n data,\n parentWorkflowName,\n stepsFlow,\n requestContext,\n}: {\n data: WorkflowStepNodeData;\n parentWorkflowName?: string;\n stepsFlow: Record<string, string[]>;\n requestContext: Record<string, any>;\n}) => {\n const { steps } = useCurrentRun();\n const { selectedStepId, setSelectedStepId, hoverStepId, setHoverStepId } = useWorkflowSelectedStep();\n const { showNestedGraph } = useWorkflowStepDetail();\n const waitingStepKey = useWaitingStepKey();\n const { label, stepId, description } = data;\n const mapConfig = data.mapConfig ?? ('step' in data.workflowStep ? data.workflowStep.step?.mapConfig : undefined);\n const stepGraph =\n data.stepGraph ??\n ('step' in data.workflowStep ? data.workflowStep.step?.serializedStepFlow : undefined) ??\n (data.workflowStep.kind === 'nested-workflow-step' && data.workflowStep.flow.type === 'workflow'\n ? data.workflowStep.flow.serializedStepFlow\n : undefined);\n const fullLabel = parentWorkflowName ? `${parentWorkflowName}.${label}` : label;\n const stepKey = parentWorkflowName ? `${parentWorkflowName}.${stepId || label}` : stepId || label;\n const isSelected = selectedStepId === stepKey;\n const isWaiting = waitingStepKey === stepKey;\n const isHovered = hoverStepId === stepKey;\n const step = steps[stepKey];\n const { displayStatus, isTripwire } = getDisplayStatus(step);\n const stepSpan = step ? resolveStepSpan(step) : undefined;\n\n return (\n <WorkflowStepCardView\n label={data.mapContext?.label ?? label}\n nodeKind={getWorkflowCardKind(data.workflowStep)}\n onSelect={() => setSelectedStepId(stepKey)}\n initiallyOpen={!parentWorkflowName}\n body={\n stepGraph?.length ? (\n <WorkflowBodyGraph\n stepGraph={stepGraph}\n workflowName={fullLabel}\n isForEach={data.isForEach}\n requestContext={requestContext}\n />\n ) : undefined\n }\n description={description ?? data.mapContext?.description}\n displayStatus={displayStatus}\n isNestedWorkflowStep={data.workflowStep.kind === 'nested-workflow-step'}\n stepKey={stepKey}\n isSelected={isSelected}\n isWaiting={isWaiting}\n isHovered={isHovered}\n onHoverChange={isHovered => setHoverStepId(isHovered ? stepKey : null)}\n duration={data.duration}\n date={data.date}\n isForEach={data.isForEach}\n foreachProgress={step?.foreachProgress}\n mapConfig={mapConfig}\n canSuspend={data.canSuspend}\n stepGraph={stepGraph}\n startedAt={stepSpan?.start}\n endedAt={stepSpan?.end}\n spansSuspension={stepSpan?.spansSuspension}\n actionBar={\n <WorkflowStepActionBar\n stepName={label}\n stepId={stepId}\n resumeData={step?.resumeData}\n error={isTripwire ? undefined : step?.error}\n tripwire={isTripwire ? step?.tripwire : undefined}\n mapConfig={mapConfig}\n onShowNestedGraph={stepGraph ? () => showNestedGraph({ label, fullStep: fullLabel, stepGraph }) : undefined}\n stepKey={stepKey}\n stepsFlow={stepsFlow}\n requestContext={requestContext}\n />\n }\n />\n );\n};\n\nconst WorkflowConditionNodeCard = ({\n data,\n parentWorkflowName,\n requestContext,\n}: {\n data: WorkflowStepNodeData;\n parentWorkflowName?: string;\n requestContext: Record<string, any>;\n}) => {\n const { steps } = useCurrentRun();\n const conditions = data.conditions ?? [];\n const previousStepId =\n data.previousStepId && (parentWorkflowName ? `${parentWorkflowName}.${data.previousStepId}` : data.previousStepId);\n const previousStep = previousStepId ? steps[previousStepId] : undefined;\n const { displayStatus: previousDisplayStatus, isTripwire } = getDisplayStatus(previousStep);\n\n return (\n <WorkflowConditionCard\n conditions={conditions}\n previousDisplayStatus={previousDisplayStatus}\n actionBar={\n <WorkflowStepActionBar\n stepName={data.nextStepId ?? data.label}\n mapConfig={data.mapConfig}\n tripwire={isTripwire ? previousStep?.tripwire : undefined}\n requestContext={requestContext}\n />\n }\n />\n );\n};\n\nexport function WorkflowGraphNode({\n data,\n parentWorkflowName,\n stepsFlow,\n requestContext,\n}: NodeProps<WorkflowStepNode> & WorkflowGraphNodeProps) {\n const content =\n data.workflowStep.kind === 'conditional' ? (\n <WorkflowConditionNodeCard data={data} parentWorkflowName={parentWorkflowName} requestContext={requestContext} />\n ) : (\n <WorkflowStepCard\n data={data}\n parentWorkflowName={parentWorkflowName}\n stepsFlow={stepsFlow}\n requestContext={requestContext}\n />\n );\n\n return (\n <WorkflowNodeFrame withoutTopHandle={data.withoutTopHandle} withoutBottomHandle={data.withoutBottomHandle}>\n {content}\n </WorkflowNodeFrame>\n );\n}\n","import type { EdgeProps, NodeProps } from '@xyflow/react';\nimport { useContext, useMemo } from 'react';\n\nimport { useCurrentRun } from '../context/use-current-run';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { groupWorkflowEdgeData } from './data/workflow-edge-data-groups';\nimport { buildStepsFlow } from './utils';\nimport type { WorkflowGraphEdge } from './utils';\nimport { getWorkflowBoundaryData } from './workflow-boundary-data';\nimport { WorkflowDataEdge } from './workflow-data-edge';\nimport { WorkflowGraphNode } from './workflow-graph-node';\nimport { WORKFLOW_BOUNDARY_NODE_TYPE, WORKFLOW_STEP_NODE_TYPE } from './workflow-step-node-utils';\nimport type { WorkflowBoundaryNode as WorkflowBoundaryNodeType, WorkflowStepNode } from './workflow-step-node-utils';\nimport { WorkflowBoundaryNode, WORKFLOW_DATA_EDGE_TYPE } from '@/ds/components/Workflow';\n\nconst getScopedStepId = (stepId: string | undefined, workflowName?: string) =>\n stepId && workflowName ? `${workflowName}.${stepId}` : stepId;\n\nexport const useWorkflowGraphRuntime = ({\n edges,\n workflowName,\n requestContext,\n}: {\n edges: WorkflowGraphEdge[];\n workflowName?: string;\n requestContext: Record<string, any>;\n}) => {\n const { steps } = useCurrentRun();\n const workflowRun = useContext(WorkflowRunContext);\n const workflowSucceeded = workflowName\n ? steps[workflowName]?.status === 'success' || getWorkflowBoundaryData(steps, workflowName).output !== undefined\n : workflowRun.result?.status === 'success';\n const stepsFlow = useMemo(() => buildStepsFlow(edges), [edges]);\n const nodeTypes = useMemo(\n () => ({\n [WORKFLOW_STEP_NODE_TYPE]: (props: NodeProps<WorkflowStepNode>) => (\n <WorkflowGraphNode\n parentWorkflowName={workflowName}\n {...props}\n stepsFlow={stepsFlow}\n requestContext={requestContext}\n />\n ),\n [WORKFLOW_BOUNDARY_NODE_TYPE]: (props: NodeProps<WorkflowBoundaryNodeType>) => (\n <WorkflowBoundaryNode {...props} />\n ),\n }),\n [stepsFlow, workflowName, requestContext],\n );\n const edgeTypes = useMemo(\n () => ({\n [WORKFLOW_DATA_EDGE_TYPE]: (props: EdgeProps<WorkflowGraphEdge>) => (\n <WorkflowDataEdge parentWorkflowName={workflowName} {...props} />\n ),\n }),\n [workflowName],\n );\n const styledEdges = useMemo(\n () =>\n groupWorkflowEdgeData(edges).map(edge => {\n const previousStepId = getScopedStepId(edge.data?.previousStepId, workflowName);\n const nextStepId = getScopedStepId(edge.data?.nextStepId, workflowName);\n const previousStepSucceeded = steps[previousStepId ?? '']?.status === 'success';\n const nextStepStatus = steps[nextStepId ?? '']?.status;\n let isFinishedEdge = previousStepSucceeded && nextStepStatus !== 'skipped';\n if (edge.data?.boundaryPayload === 'workflow-output') {\n isFinishedEdge = workflowSucceeded;\n } else if (edge.data?.boundaryPayload === 'workflow-input' || edge.data?.conditionNode) {\n isFinishedEdge = Boolean(nextStepStatus) && nextStepStatus !== 'skipped';\n }\n\n return {\n ...edge,\n type: WORKFLOW_DATA_EDGE_TYPE,\n animated: isFinishedEdge ? false : edge.animated,\n data: {\n ...edge.data,\n edgeStatus: isFinishedEdge ? 'success' : 'idle',\n },\n style: {\n ...edge.style,\n stroke: isFinishedEdge ? 'var(--success-indicator)' : 'var(--muted-foreground)',\n strokeDasharray: isFinishedEdge ? 'none' : edge.style?.strokeDasharray,\n },\n };\n }),\n [edges, steps, workflowName, workflowSucceeded],\n );\n\n return { edgeTypes, nodeTypes, stepsFlow, styledEdges };\n};\n"],"names":["isHovered"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-workflow-graph-runtime-BF_NZEkj.js","sources":["../src/domains/workflows/workflow/workflow-nested-graph.tsx","../src/domains/workflows/workflow/workflow-body-graph.tsx","../src/domains/workflows/workflow/workflow-graph-node.tsx","../src/domains/workflows/workflow/use-workflow-graph-runtime.tsx"],"sourcesContent":["import type { SerializedStepFlowEntry } from '@mastra/core/workflows';\n\nimport { useMemo, useState } from 'react';\nimport { useCurrentRun } from '../context/use-current-run';\nimport { useWorkflowGraphNodes } from './use-workflow-graph-nodes';\nimport { useWorkflowGraphRuntime } from './use-workflow-graph-runtime';\nimport { WorkflowGraphBoundary } from './workflow-graph-boundary';\nimport { getWorkflowGraphGroups } from './workflow-graph-groups';\nimport { getWorkflowIterationScopes } from './workflow-iteration-scopes';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { Txt } from '@/ds/components/Txt';\nimport { WorkflowGraphCanvas, WORKFLOW_BOUNDARY_NODE_TYPE } from '@/ds/components/Workflow';\n\nexport interface WorkflowNestedGraphProps {\n stepGraph: SerializedStepFlowEntry[];\n workflowName: string;\n isForEach?: boolean;\n embedded?: boolean;\n requestContext: Record<string, any>;\n}\n\nexport function WorkflowNestedGraph(props: WorkflowNestedGraphProps) {\n const layoutKey = useMemo(\n () => `${props.workflowName}:${JSON.stringify(props.stepGraph)}`,\n [props.workflowName, props.stepGraph],\n );\n return (\n <WorkflowGraphBoundary key={layoutKey} stepGraph={props.stepGraph}>\n <WorkflowNestedGraphContent {...props} />\n </WorkflowGraphBoundary>\n );\n}\n\nfunction WorkflowNestedGraphContent({\n stepGraph,\n workflowName,\n isForEach,\n embedded,\n requestContext,\n}: WorkflowNestedGraphProps) {\n const { nodes, edges, onNodesChange } = useWorkflowGraphNodes(stepGraph);\n const { steps } = useCurrentRun();\n const iterations = getWorkflowIterationScopes(Object.keys(steps), workflowName);\n const [selectedIteration, setSelectedIteration] = useState<string>();\n const activeIteration = iterations.find(iteration => iteration.value === selectedIteration) ?? iterations[0];\n\n const { edgeTypes, nodeTypes, styledEdges } = useWorkflowGraphRuntime({\n edges,\n workflowName: activeIteration?.value ?? workflowName,\n requestContext,\n });\n\n const labeledNodes = useMemo(\n () =>\n nodes.map(node => {\n if (!isForEach || node.type !== WORKFLOW_BOUNDARY_NODE_TYPE) return node;\n const label = node.data.boundaryRole === 'start' ? 'Each item' : 'Item result';\n return { ...node, data: { ...node.data, label } };\n }),\n [nodes, isForEach],\n );\n const groups = useMemo(() => getWorkflowGraphGroups(nodes), [nodes]);\n\n return (\n <div className=\"relative flex size-full flex-col\">\n {activeIteration && (\n <div className=\"nodrag nopan flex items-center gap-3 border-b border-border px-4 py-2\">\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n Iteration\n </Txt>\n <Select value={activeIteration.value} onValueChange={setSelectedIteration} items={iterations}>\n <SelectTrigger aria-label=\"Loop item\" size=\"sm\" className=\"w-36\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {iterations.map(iteration => (\n <SelectItem key={iteration.value} value={iteration.value}>\n {iteration.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )}\n <div className=\"min-h-0 flex-1\">\n <WorkflowGraphCanvas\n variant={embedded ? 'inline' : 'nested'}\n groups={groups}\n nodes={labeledNodes}\n edges={styledEdges}\n edgeTypes={edgeTypes}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n />\n </div>\n </div>\n );\n}\n","import type { SerializedStepFlowEntry } from '@mastra/core/workflows';\nimport { ReactFlowProvider } from '@xyflow/react';\nimport { Repeat2 } from 'lucide-react';\nimport { WorkflowNestedGraph } from './workflow-nested-graph';\nimport { Txt } from '@/ds/components/Txt';\n\nexport function WorkflowBodyGraph({\n stepGraph,\n workflowName,\n isForEach,\n requestContext,\n}: {\n stepGraph: SerializedStepFlowEntry[];\n workflowName: string;\n isForEach?: boolean;\n requestContext: Record<string, any>;\n}) {\n return (\n <section aria-label={isForEach ? 'Loop body' : 'Nested workflow'} className=\"flex h-full min-h-0 flex-col\">\n {isForEach && (\n <div className=\"flex shrink-0 items-start gap-2 px-4 py-3 text-muted-foreground\">\n <Repeat2 aria-hidden className=\"mt-0.5 size-4 shrink-0 text-muted-foreground\" />\n <Txt variant=\"meta\">Runs for every item. All items finish before the workflow continues.</Txt>\n </div>\n )}\n <div className=\"min-h-0 flex-1 overflow-hidden\">\n <ReactFlowProvider>\n <WorkflowNestedGraph\n stepGraph={stepGraph}\n embedded\n workflowName={workflowName}\n isForEach={isForEach}\n requestContext={requestContext}\n />\n </ReactFlowProvider>\n </div>\n </section>\n );\n}\n","import type { NodeProps } from '@xyflow/react';\n\nimport { useCurrentRun } from '../context/use-current-run';\nimport type { Step } from '../context/use-current-run';\nimport { useWorkflowSelectedStep } from '../context/use-workflow-selected-step';\nimport { useWorkflowStepDetail } from '../context/workflow-step-detail-context';\nimport { isAwaitingInput, resolveStepSpan } from '../context/workflow-step-timing';\nimport { useWaitingStepKey } from './use-workflow-trigger';\nimport { WorkflowBodyGraph } from './workflow-body-graph';\nimport { getWorkflowCardKind } from './workflow-node-kind';\nimport { WorkflowStepActionBar } from './workflow-step-action-bar';\nimport type { WorkflowStepNode, WorkflowStepNodeData } from './workflow-step-node-utils';\nimport { WorkflowNodeFrame, WorkflowConditionCard, WorkflowStepCardView } from '@/ds/components/Workflow';\nimport type { WorkflowCardDisplayStatus } from '@/ds/components/Workflow';\n\nexport interface WorkflowGraphNodeProps {\n parentWorkflowName?: string;\n stepsFlow: Record<string, string[]>;\n requestContext: Record<string, any>;\n}\n\nconst getDisplayStatus = (step?: Step): { displayStatus: WorkflowCardDisplayStatus; isTripwire: boolean } => {\n const isTripwire = step?.status === 'failed' && step?.tripwire !== undefined;\n const displayStatus = step && isAwaitingInput(step) ? 'suspended' : step?.status;\n return {\n displayStatus: isTripwire ? 'tripwire' : displayStatus,\n isTripwire,\n };\n};\n\nconst WorkflowStepCard = ({\n data,\n parentWorkflowName,\n stepsFlow,\n requestContext,\n}: {\n data: WorkflowStepNodeData;\n parentWorkflowName?: string;\n stepsFlow: Record<string, string[]>;\n requestContext: Record<string, any>;\n}) => {\n const { steps } = useCurrentRun();\n const { selectedStepId, setSelectedStepId, hoverStepId, setHoverStepId } = useWorkflowSelectedStep();\n const { showNestedGraph } = useWorkflowStepDetail();\n const waitingStepKey = useWaitingStepKey();\n const { label, stepId, description } = data;\n const mapConfig = data.mapConfig ?? ('step' in data.workflowStep ? data.workflowStep.step?.mapConfig : undefined);\n const stepGraph =\n data.stepGraph ??\n ('step' in data.workflowStep ? data.workflowStep.step?.serializedStepFlow : undefined) ??\n (data.workflowStep.kind === 'nested-workflow-step' && data.workflowStep.flow.type === 'workflow'\n ? data.workflowStep.flow.serializedStepFlow\n : undefined);\n const fullLabel = parentWorkflowName ? `${parentWorkflowName}.${label}` : label;\n const stepKey = parentWorkflowName ? `${parentWorkflowName}.${stepId || label}` : stepId || label;\n const isSelected = selectedStepId === stepKey;\n const isWaiting = waitingStepKey === stepKey;\n const isHovered = hoverStepId === stepKey;\n const step = steps[stepKey];\n const { displayStatus, isTripwire } = getDisplayStatus(step);\n const stepSpan = step ? resolveStepSpan(step) : undefined;\n\n return (\n <WorkflowStepCardView\n label={data.mapContext?.label ?? label}\n nodeKind={getWorkflowCardKind(data.workflowStep)}\n onSelect={() => setSelectedStepId(stepKey)}\n initiallyOpen={!parentWorkflowName}\n body={\n stepGraph?.length ? (\n <WorkflowBodyGraph\n stepGraph={stepGraph}\n workflowName={fullLabel}\n isForEach={data.isForEach}\n requestContext={requestContext}\n />\n ) : undefined\n }\n description={description ?? data.mapContext?.description}\n displayStatus={displayStatus}\n isNestedWorkflowStep={data.workflowStep.kind === 'nested-workflow-step'}\n stepKey={stepKey}\n isSelected={isSelected}\n isWaiting={isWaiting}\n isHovered={isHovered}\n onHoverChange={isHovered => setHoverStepId(isHovered ? stepKey : null)}\n duration={data.duration}\n date={data.date}\n isForEach={data.isForEach}\n foreachProgress={step?.foreachProgress}\n mapConfig={mapConfig}\n canSuspend={data.canSuspend}\n stepGraph={stepGraph}\n startedAt={stepSpan?.start}\n endedAt={stepSpan?.end}\n spansSuspension={stepSpan?.spansSuspension}\n actionBar={\n <WorkflowStepActionBar\n stepName={label}\n stepId={stepId}\n resumeData={step?.resumeData}\n error={isTripwire ? undefined : step?.error}\n tripwire={isTripwire ? step?.tripwire : undefined}\n mapConfig={mapConfig}\n onShowNestedGraph={stepGraph ? () => showNestedGraph({ label, fullStep: fullLabel, stepGraph }) : undefined}\n stepKey={stepKey}\n stepsFlow={stepsFlow}\n requestContext={requestContext}\n />\n }\n />\n );\n};\n\nconst WorkflowConditionNodeCard = ({\n data,\n parentWorkflowName,\n requestContext,\n}: {\n data: WorkflowStepNodeData;\n parentWorkflowName?: string;\n requestContext: Record<string, any>;\n}) => {\n const { steps } = useCurrentRun();\n const conditions = data.conditions ?? [];\n const previousStepId =\n data.previousStepId && (parentWorkflowName ? `${parentWorkflowName}.${data.previousStepId}` : data.previousStepId);\n const previousStep = previousStepId ? steps[previousStepId] : undefined;\n const { displayStatus: previousDisplayStatus, isTripwire } = getDisplayStatus(previousStep);\n\n return (\n <WorkflowConditionCard\n conditions={conditions}\n previousDisplayStatus={previousDisplayStatus}\n actionBar={\n <WorkflowStepActionBar\n stepName={data.nextStepId ?? data.label}\n mapConfig={data.mapConfig}\n tripwire={isTripwire ? previousStep?.tripwire : undefined}\n requestContext={requestContext}\n />\n }\n />\n );\n};\n\nexport function WorkflowGraphNode({\n data,\n parentWorkflowName,\n stepsFlow,\n requestContext,\n}: NodeProps<WorkflowStepNode> & WorkflowGraphNodeProps) {\n const content =\n data.workflowStep.kind === 'conditional' ? (\n <WorkflowConditionNodeCard data={data} parentWorkflowName={parentWorkflowName} requestContext={requestContext} />\n ) : (\n <WorkflowStepCard\n data={data}\n parentWorkflowName={parentWorkflowName}\n stepsFlow={stepsFlow}\n requestContext={requestContext}\n />\n );\n\n return (\n <WorkflowNodeFrame withoutTopHandle={data.withoutTopHandle} withoutBottomHandle={data.withoutBottomHandle}>\n {content}\n </WorkflowNodeFrame>\n );\n}\n","import type { EdgeProps, NodeProps } from '@xyflow/react';\nimport { useContext, useMemo } from 'react';\n\nimport { useCurrentRun } from '../context/use-current-run';\nimport { WorkflowRunContext } from '../context/workflow-run-context';\nimport { groupWorkflowEdgeData } from './data/workflow-edge-data-groups';\nimport { buildStepsFlow } from './utils';\nimport type { WorkflowGraphEdge } from './utils';\nimport { getWorkflowBoundaryData } from './workflow-boundary-data';\nimport { WorkflowDataEdge } from './workflow-data-edge';\nimport { WorkflowGraphNode } from './workflow-graph-node';\nimport { WORKFLOW_BOUNDARY_NODE_TYPE, WORKFLOW_STEP_NODE_TYPE } from './workflow-step-node-utils';\nimport type { WorkflowBoundaryNode as WorkflowBoundaryNodeType, WorkflowStepNode } from './workflow-step-node-utils';\nimport { WorkflowBoundaryNode, WORKFLOW_DATA_EDGE_TYPE } from '@/ds/components/Workflow';\n\nconst getScopedStepId = (stepId: string | undefined, workflowName?: string) =>\n stepId && workflowName ? `${workflowName}.${stepId}` : stepId;\n\nexport const useWorkflowGraphRuntime = ({\n edges,\n workflowName,\n requestContext,\n}: {\n edges: WorkflowGraphEdge[];\n workflowName?: string;\n requestContext: Record<string, any>;\n}) => {\n const { steps } = useCurrentRun();\n const workflowRun = useContext(WorkflowRunContext);\n const workflowSucceeded = workflowName\n ? steps[workflowName]?.status === 'success' || getWorkflowBoundaryData(steps, workflowName).output !== undefined\n : workflowRun.result?.status === 'success';\n const stepsFlow = useMemo(() => buildStepsFlow(edges), [edges]);\n const nodeTypes = useMemo(\n () => ({\n [WORKFLOW_STEP_NODE_TYPE]: (props: NodeProps<WorkflowStepNode>) => (\n <WorkflowGraphNode\n parentWorkflowName={workflowName}\n {...props}\n stepsFlow={stepsFlow}\n requestContext={requestContext}\n />\n ),\n [WORKFLOW_BOUNDARY_NODE_TYPE]: (props: NodeProps<WorkflowBoundaryNodeType>) => (\n <WorkflowBoundaryNode {...props} />\n ),\n }),\n [stepsFlow, workflowName, requestContext],\n );\n const edgeTypes = useMemo(\n () => ({\n [WORKFLOW_DATA_EDGE_TYPE]: (props: EdgeProps<WorkflowGraphEdge>) => (\n <WorkflowDataEdge parentWorkflowName={workflowName} {...props} />\n ),\n }),\n [workflowName],\n );\n const styledEdges = useMemo(\n () =>\n groupWorkflowEdgeData(edges).map(edge => {\n const previousStepId = getScopedStepId(edge.data?.previousStepId, workflowName);\n const nextStepId = getScopedStepId(edge.data?.nextStepId, workflowName);\n const previousStepSucceeded = steps[previousStepId ?? '']?.status === 'success';\n const nextStepStatus = steps[nextStepId ?? '']?.status;\n let isFinishedEdge = previousStepSucceeded && nextStepStatus !== 'skipped';\n if (edge.data?.boundaryPayload === 'workflow-output') {\n isFinishedEdge = workflowSucceeded;\n } else if (edge.data?.boundaryPayload === 'workflow-input' || edge.data?.conditionNode) {\n isFinishedEdge = Boolean(nextStepStatus) && nextStepStatus !== 'skipped';\n }\n\n return {\n ...edge,\n type: WORKFLOW_DATA_EDGE_TYPE,\n animated: isFinishedEdge ? false : edge.animated,\n data: {\n ...edge.data,\n edgeStatus: isFinishedEdge ? 'success' : 'idle',\n },\n style: {\n ...edge.style,\n stroke: isFinishedEdge ? 'var(--success-indicator)' : 'var(--muted-foreground)',\n strokeDasharray: isFinishedEdge ? 'none' : edge.style?.strokeDasharray,\n },\n };\n }),\n [edges, steps, workflowName, workflowSucceeded],\n );\n\n return { edgeTypes, nodeTypes, stepsFlow, styledEdges };\n};\n"],"names":["isHovered"],"mappings":"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"}
|
package/dist/{use-workflow-graph-runtime-t17K6Hkf.cjs → use-workflow-graph-runtime-r_OOpvSo.cjs}
RENAMED
|
@@ -17,7 +17,7 @@ const lucideReact = require('lucide-react');
|
|
|
17
17
|
const domains_workflows_workflow_useWorkflowGraphNodes = require('./domains/workflows/workflow/use-workflow-graph-nodes.cjs.js');
|
|
18
18
|
const domains_workflows_workflow_workflowStepNodeUtils = require('./domains/workflows/workflow/workflow-step-node-utils.cjs.js');
|
|
19
19
|
const types = require('./types-1cBe2TOn.cjs');
|
|
20
|
-
const workflowConditionCard = require('./workflow-condition-card-
|
|
20
|
+
const workflowConditionCard = require('./workflow-condition-card-Dlo2PaKV.cjs');
|
|
21
21
|
const domains_workflows_workflow_workflowGraphBoundary = require('./domains/workflows/workflow/workflow-graph-boundary.cjs.js');
|
|
22
22
|
const domains_workflows_workflow_workflowGraphGroups = require('./domains/workflows/workflow/workflow-graph-groups.cjs.js');
|
|
23
23
|
const domains_workflows_workflow_workflowIterationScopes = require('./domains/workflows/workflow/workflow-iteration-scopes.cjs.js');
|
|
@@ -299,4 +299,4 @@ exports.WorkflowBodyGraph = WorkflowBodyGraph;
|
|
|
299
299
|
exports.WorkflowGraphNode = WorkflowGraphNode;
|
|
300
300
|
exports.WorkflowNestedGraph = WorkflowNestedGraph;
|
|
301
301
|
exports.useWorkflowGraphRuntime = useWorkflowGraphRuntime;
|
|
302
|
-
//# sourceMappingURL=use-workflow-graph-runtime-
|
|
302
|
+
//# sourceMappingURL=use-workflow-graph-runtime-r_OOpvSo.cjs.map
|