@mastra/playground-ui 68.0.0-alpha.2 → 68.0.0
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/{FilterBar-CQl04O6t.cjs → FilterBar-BSP2UTjc.cjs} +2 -2
- package/dist/{FilterBar-CQl04O6t.cjs.map → FilterBar-BSP2UTjc.cjs.map} +1 -1
- package/dist/{FilterBar-BgW2dqRQ.js → FilterBar-PSQ1OwqH.js} +2 -2
- package/dist/{FilterBar-BgW2dqRQ.js.map → FilterBar-PSQ1OwqH.js.map} +1 -1
- package/dist/KnowledgePageGraph.css +55 -0
- package/dist/{MarkdownRenderer-2GOXQJEv.js → MarkdownRenderer-CI30RqdB.js} +19 -6
- package/dist/MarkdownRenderer-CI30RqdB.js.map +1 -0
- package/dist/{MarkdownRenderer-CB8Z_CHc.cjs → MarkdownRenderer-y65WGBhC.cjs} +19 -6
- package/dist/MarkdownRenderer-y65WGBhC.cjs.map +1 -0
- package/dist/{MetricsCard-CEB-f2sv.cjs → MetricsCard-BEwiS7Pe.cjs} +8 -8
- package/dist/MetricsCard-BEwiS7Pe.cjs.map +1 -0
- package/dist/{MetricsCard-M8awJ2B_.js → MetricsCard-ua6C6b8a.js} +10 -10
- package/dist/MetricsCard-ua6C6b8a.js.map +1 -0
- package/dist/{MetricsLineChart-BhHoduO0.js → MetricsLineChart-4SwxBbQx.js} +14 -3
- package/dist/MetricsLineChart-4SwxBbQx.js.map +1 -0
- package/dist/{MetricsLineChart-CjBm4IXu.cjs → MetricsLineChart-tZxsauau.cjs} +13 -2
- package/dist/MetricsLineChart-tZxsauau.cjs.map +1 -0
- package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs → MetricsStackedBarChart-CDLE76IB.cjs} +2 -2
- package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs.map → MetricsStackedBarChart-CDLE76IB.cjs.map} +1 -1
- package/dist/{MetricsStackedBarChart-BRuA6MTE.js → MetricsStackedBarChart-D2QyS4-z.js} +2 -2
- package/dist/{MetricsStackedBarChart-BRuA6MTE.js.map → MetricsStackedBarChart-D2QyS4-z.js.map} +1 -1
- package/dist/{activity-rJ1NQl_2.js → activity-C8Ql81WM.js} +2 -2
- package/dist/{activity-rJ1NQl_2.js.map → activity-C8Ql81WM.js.map} +1 -1
- package/dist/{activity-DyB5H3gF.cjs → activity-CcQZeDYi.cjs} +2 -2
- package/dist/{activity-DyB5H3gF.cjs.map → activity-CcQZeDYi.cjs.map} +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
- package/dist/components/MetricsStackedBarChart.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +1 -1
- package/dist/components/SavedViews.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-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/{date-time-range-picker-CTt7Od0P.cjs → date-time-range-picker-CWGjoR3j.cjs} +40 -13
- package/dist/date-time-range-picker-CWGjoR3j.cjs.map +1 -0
- package/dist/{date-time-range-picker-DKh1K9Iy.js → date-time-range-picker-CdSiXwB4.js} +40 -13
- package/dist/date-time-range-picker-CdSiXwB4.js.map +1 -0
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.cjs.js +2 -2
- package/dist/domains/chat/activity/model/activity-words.es.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js +52 -6
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.es.js +53 -9
- package/dist/domains/chat/knowledge/knowledge-links.es.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js +10 -3
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js +10 -3
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +8 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +8 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js.map +1 -1
- package/dist/domains/chat/knowledge.cjs.js +2 -0
- package/dist/domains/chat/knowledge.es.js +2 -2
- package/dist/domains/chat/messages/message-row.cjs.js +3 -3
- package/dist/domains/chat/messages/message-row.es.js +3 -3
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +35 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +36 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js.map +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/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
- package/dist/domains/chat/messages/skill-message.es.js +2 -2
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +80 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.d.ts +1 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +78 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +163 -13
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +165 -15
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js +51 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.d.ts +1 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js +49 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +7 -2
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +7 -2
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- 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/sandbox-execution-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +9 -4
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +9 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js +81 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.d.ts +1 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js +77 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +11 -2
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +11 -2
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +79 -4
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js.map +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +79 -4
- package/dist/domains/chat/tools/connect-prompt-tool.es.js.map +1 -1
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +238 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.d.ts +1 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js +237 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request.cjs.js +40 -0
- package/dist/domains/chat/tools/mcp-input-request.cjs.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request.d.ts +1 -0
- package/dist/domains/chat/tools/mcp-input-request.es.js +33 -0
- package/dist/domains/chat/tools/mcp-input-request.es.js.map +1 -0
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +9 -4
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +9 -5
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -1
- package/dist/domains/chat.cjs.js +5 -3
- package/dist/domains/chat.es.js +4 -4
- package/dist/domains/connect/types.cjs.js.map +1 -1
- package/dist/domains/connect/types.es.js.map +1 -1
- package/dist/domains/connect/use-user-connect.cjs.js +19 -2
- package/dist/domains/connect/use-user-connect.cjs.js.map +1 -1
- package/dist/domains/connect/use-user-connect.es.js +19 -2
- package/dist/domains/connect/use-user-connect.es.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +4 -3
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +4 -3
- package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
- package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
- package/dist/domains/dashboards/components/widget-error.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-error.es.js +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +4 -3
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.es.js +4 -3
- package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +9 -6
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +9 -6
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +2 -2
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +2 -2
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +6 -5
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +6 -5
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.cjs.js +9 -2
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.es.js +9 -2
- package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +48 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js +47 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +63 -5
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +64 -6
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +485 -47
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +487 -50
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +1051 -123
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +1054 -126
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +75 -3
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +76 -4
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
- package/dist/domains/knowledge/lib/circleText.cjs.js +9 -0
- package/dist/domains/knowledge/lib/circleText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/circleText.d.ts +1 -0
- package/dist/domains/knowledge/lib/circleText.es.js +8 -0
- package/dist/domains/knowledge/lib/circleText.es.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js +82 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.d.ts +1 -0
- package/dist/domains/knowledge/lib/fitViewport.es.js +73 -0
- package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -0
- package/dist/domains/knowledge/lib/graphShape.cjs.js +524 -0
- package/dist/domains/knowledge/lib/graphShape.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/graphShape.d.ts +1 -0
- package/dist/domains/knowledge/lib/graphShape.es.js +499 -0
- package/dist/domains/knowledge/lib/graphShape.es.js.map +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.cjs.js +11 -0
- package/dist/domains/knowledge/lib/linkCountsText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.d.ts +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.es.js +10 -0
- package/dist/domains/knowledge/lib/linkCountsText.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js +29 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageAddress.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageAddress.es.js +27 -0
- package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js +11 -11
- package/dist/domains/knowledge/lib/pageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageGraph.es.js +11 -11
- package/dist/domains/knowledge/lib/pageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/lib/pageRefs.cjs.js +69 -0
- package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageRefs.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageRefs.es.js +66 -0
- package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js +5 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageTree.es.js +5 -1
- package/dist/domains/knowledge/lib/pageTree.es.js.map +1 -1
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js +82 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +1 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js +78 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js.map +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.cjs.js +77 -0
- package/dist/domains/knowledge/lib/tooltipSide.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.d.ts +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.es.js +75 -0
- package/dist/domains/knowledge/lib/tooltipSide.es.js.map +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js +65 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.d.ts +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.es.js +62 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.es.js.map +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.cjs.js +15 -0
- package/dist/domains/knowledge/lib/useStableWhile.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.d.ts +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.es.js +14 -0
- package/dist/domains/knowledge/lib/useStableWhile.es.js.map +1 -0
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +3 -3
- package/dist/domains/metrics/components/agent-runs-card.es.js +3 -3
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
- package/dist/domains/metrics/components/breakdown-card.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown-card.es.js +1 -1
- package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +3 -2
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +3 -2
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +3 -2
- package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +3 -2
- package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +3 -2
- package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +3 -2
- package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +2 -1
- package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +2 -1
- package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +3 -3
- package/dist/domains/metrics/components/token-usage-card.es.js +3 -3
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
- package/dist/domains/observability/components/observability-histogram.cjs.js +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
- package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
- package/dist/domains/skills/skill-simple-form.cjs.js +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +1 -1
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +2 -2
- package/dist/domains/spans/components/spans-filter-bar.es.js +2 -2
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +1 -1
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +2 -2
- package/dist/domains/threads/components/threads-filter-bar.es.js +2 -2
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.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-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 +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
- 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-mutations.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.cjs.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +8 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +8 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-cell.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
- 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 +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
- package/dist/{filter-bar-time-range-mg9JeYue.js → filter-bar-time-range-qlV8p7hp.js} +2 -2
- package/dist/{filter-bar-time-range-mg9JeYue.js.map → filter-bar-time-range-qlV8p7hp.js.map} +1 -1
- package/dist/{filter-bar-time-range-BA-pXMlo.cjs → filter-bar-time-range-zdM024JD.cjs} +2 -2
- package/dist/{filter-bar-time-range-BA-pXMlo.cjs.map → filter-bar-time-range-zdM024JD.cjs.map} +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/lib/form/json-draft.cjs.js +1 -1
- package/dist/lib/form/json-draft.es.js +1 -1
- package/dist/lib/form/zod-provider.cjs.js +1 -1
- package/dist/lib/form/zod-provider.es.js +1 -1
- package/dist/{span-payload-primitives-B3RdahsC.js → span-payload-primitives-CKKIAVPJ.js} +4 -4
- package/dist/{span-payload-primitives-B3RdahsC.js.map → span-payload-primitives-CKKIAVPJ.js.map} +1 -1
- package/dist/{span-payload-primitives-_2d-pAOD.cjs → span-payload-primitives-D4tHWN2W.cjs} +4 -4
- package/dist/{span-payload-primitives-_2d-pAOD.cjs.map → span-payload-primitives-D4tHWN2W.cjs.map} +1 -1
- package/dist/src/domains/chat/knowledge/knowledge-links.d.ts +32 -4
- package/dist/src/domains/chat/knowledge/pinned-knowledge-data.d.ts +2 -0
- package/dist/src/domains/chat/tools/badges/knowledge-body-range.d.ts +12 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +5 -2
- package/dist/src/domains/chat/tools/badges/mcp-input-request-badge.d.ts +18 -0
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +4 -1
- package/dist/src/domains/chat/tools/badges/use-deferred-input-request.d.ts +44 -0
- package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +6 -1
- package/dist/src/domains/chat/tools/connect-prompt-tool.d.ts +10 -1
- package/dist/src/domains/chat/tools/mcp-input-request-tool.d.ts +18 -0
- package/dist/src/domains/chat/tools/mcp-input-request.d.ts +40 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +4 -2
- package/dist/src/domains/chat/tools/tool-card.d.ts +1 -1
- package/dist/src/domains/connect/types.d.ts +16 -0
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +4 -2
- package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +4 -3
- package/dist/src/domains/dashboards/index.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/lib/chrome.d.ts +6 -4
- package/dist/src/domains/dashboards/widget-kind.d.ts +12 -0
- package/dist/src/domains/knowledge/components/KnowledgePageCard.d.ts +23 -0
- package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +29 -0
- package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +27 -1
- package/dist/src/domains/knowledge/components/KnowledgePageTree.d.ts +2 -1
- package/dist/src/domains/knowledge/lib/circleText.d.ts +2 -0
- package/dist/src/domains/knowledge/lib/fitViewport.d.ts +67 -0
- package/dist/src/domains/knowledge/lib/graphShape.d.ts +131 -0
- package/dist/src/domains/knowledge/lib/linkCountsText.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/pageAddress.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/pageGraph.d.ts +4 -4
- package/dist/src/domains/knowledge/lib/pageRefs.d.ts +15 -0
- package/dist/src/domains/knowledge/lib/pageTree.d.ts +2 -0
- package/dist/src/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +13 -0
- package/dist/src/domains/knowledge/lib/tooltipSide.d.ts +40 -0
- package/dist/src/domains/knowledge/lib/useLeavingNodes.d.ts +14 -0
- package/dist/src/domains/knowledge/lib/useStableWhile.d.ts +5 -0
- package/dist/src/domains/knowledge/pageTypes.d.ts +6 -1
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -1
- package/dist/src/ds/components/MarkdownRenderer/markdown-renderer.d.ts +8 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +1 -1
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +8 -0
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +6 -0
- package/dist/style.css +73 -2
- package/dist/{tool-approval-1qiB4hhG.cjs → tool-approval-CJvPDL7D.cjs} +4 -4
- package/dist/{tool-approval-1qiB4hhG.cjs.map → tool-approval-CJvPDL7D.cjs.map} +1 -1
- package/dist/{tool-approval-B6MFcaKV.js → tool-approval-DyN11vFA.js} +4 -4
- package/dist/{tool-approval-B6MFcaKV.js.map → tool-approval-DyN11vFA.js.map} +1 -1
- package/dist/{tool-call-Bu66PkD-.cjs → tool-call-DBn14X-3.cjs} +9 -3
- package/dist/{tool-call-Bu66PkD-.cjs.map → tool-call-DBn14X-3.cjs.map} +1 -1
- package/dist/{tool-call-Ch9-jjXU.js → tool-call-Dsj43lvJ.js} +9 -3
- package/dist/{tool-call-Ch9-jjXU.js.map → tool-call-Dsj43lvJ.js.map} +1 -1
- package/dist/{tool-card-DrqPZfPQ.cjs → tool-card-BOLXeKIp.cjs} +167 -126
- package/dist/tool-card-BOLXeKIp.cjs.map +1 -0
- package/dist/{tool-card-sO6P2Qj4.js → tool-card-HZ5bm7ue.js} +168 -127
- package/dist/tool-card-HZ5bm7ue.js.map +1 -0
- package/dist/{tool-presentation-DvCsb_kz.js → tool-presentation-CvibOP1J.js} +6 -1
- package/dist/tool-presentation-CvibOP1J.js.map +1 -0
- package/dist/{tool-presentation-CQlDEwgS.cjs → tool-presentation-D6nzVruN.cjs} +6 -1
- package/dist/tool-presentation-D6nzVruN.cjs.map +1 -0
- package/package.json +11 -11
- package/dist/MarkdownRenderer-2GOXQJEv.js.map +0 -1
- package/dist/MarkdownRenderer-CB8Z_CHc.cjs.map +0 -1
- package/dist/MetricsCard-CEB-f2sv.cjs.map +0 -1
- package/dist/MetricsCard-M8awJ2B_.js.map +0 -1
- package/dist/MetricsLineChart-BhHoduO0.js.map +0 -1
- package/dist/MetricsLineChart-CjBm4IXu.cjs.map +0 -1
- package/dist/date-time-range-picker-CTt7Od0P.cjs.map +0 -1
- package/dist/date-time-range-picker-DKh1K9Iy.js.map +0 -1
- package/dist/domains/knowledge/lib/pageLayout.cjs.js +0 -49
- package/dist/domains/knowledge/lib/pageLayout.cjs.js.map +0 -1
- package/dist/domains/knowledge/lib/pageLayout.d.ts +0 -1
- package/dist/domains/knowledge/lib/pageLayout.es.js +0 -48
- package/dist/domains/knowledge/lib/pageLayout.es.js.map +0 -1
- package/dist/src/domains/knowledge/lib/pageLayout.d.ts +0 -24
- package/dist/tool-card-DrqPZfPQ.cjs.map +0 -1
- package/dist/tool-card-sO6P2Qj4.js.map +0 -1
- package/dist/tool-presentation-CQlDEwgS.cjs.map +0 -1
- package/dist/tool-presentation-DvCsb_kz.js.map +0 -1
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_Txt = require("../../../../Txt-BnoSqxKE.cjs");
|
|
3
|
-
const
|
|
3
|
+
const require_tool_call = require("../../../../tool-call-DBn14X-3.cjs");
|
|
4
|
+
const require_MarkdownRenderer = require("../../../../MarkdownRenderer-y65WGBhC.cjs");
|
|
4
5
|
const require_domains_chat_messages_signal_data = require("../../messages/signal-data.cjs.js");
|
|
5
6
|
const require_domains_chat_knowledge_knowledge_links = require("../../knowledge/knowledge-links.cjs.js");
|
|
7
|
+
const require_domains_knowledge_lib_remarkKnowledgeLinks = require("../../../knowledge/lib/remarkKnowledgeLinks.cjs.js");
|
|
8
|
+
const require_domains_chat_tools_badges_knowledge_body_range = require("./knowledge-body-range.cjs.js");
|
|
6
9
|
const require_domains_chat_tools_badges_tool_approval_badge = require("./tool-approval-badge.cjs.js");
|
|
10
|
+
let react = require("react");
|
|
7
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
12
|
let lucide_react = require("lucide-react");
|
|
9
13
|
// src/domains/chat/tools/badges/knowledge-tool-badge.tsx
|
|
@@ -13,7 +17,8 @@ var KNOWLEDGE_TOOLS = /* @__PURE__ */ new Set([
|
|
|
13
17
|
"knowledge_read",
|
|
14
18
|
"knowledge_page",
|
|
15
19
|
"knowledge_note",
|
|
16
|
-
"knowledge_pin"
|
|
20
|
+
"knowledge_pin",
|
|
21
|
+
"knowledge_list"
|
|
17
22
|
]);
|
|
18
23
|
var str = (value) => typeof value === "string" && value ? value : void 0;
|
|
19
24
|
function asPage(value) {
|
|
@@ -23,6 +28,21 @@ function asPage(value) {
|
|
|
23
28
|
function asNotes(value) {
|
|
24
29
|
return Array.isArray(value) ? value.filter((note) => require_domains_chat_messages_signal_data.isRecord(note) && typeof note.text === "string") : [];
|
|
25
30
|
}
|
|
31
|
+
/** The collapsed row's detail: the page name, then which part of it was read or written. */
|
|
32
|
+
var withExtent = (name, extent) => extent?.row ? `${name} · ${extent.row}` : name;
|
|
33
|
+
/** The numbered lines of a part read: a window, or each match, under the range it covers. */
|
|
34
|
+
function ReadLines({ page }) {
|
|
35
|
+
if (!require_domains_chat_messages_signal_data.isRecord(page)) return null;
|
|
36
|
+
const lines = (Array.isArray(page.matches) ? page.matches.filter(require_domains_chat_messages_signal_data.isRecord).map((match) => str(match.lines)) : [str(page.lines)]).filter((part) => part !== void 0);
|
|
37
|
+
if (!lines.length) return null;
|
|
38
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
39
|
+
as: "p",
|
|
40
|
+
variant: "meta",
|
|
41
|
+
font: "mono",
|
|
42
|
+
className: "whitespace-pre-wrap",
|
|
43
|
+
children: lines.join("\n⋯\n")
|
|
44
|
+
});
|
|
45
|
+
}
|
|
26
46
|
var where = (page) => page.address ?? page.scope;
|
|
27
47
|
function PageLink({ page }) {
|
|
28
48
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_knowledge_links.KnowledgePageLink, {
|
|
@@ -47,14 +67,59 @@ function PageLine({ page, linked = true }) {
|
|
|
47
67
|
as: "span",
|
|
48
68
|
variant: "label",
|
|
49
69
|
children: linked ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLink, { page }) : page.name
|
|
50
|
-
}), scope ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: page.key ? `${scope}#${page.key}` : scope }) : null]
|
|
70
|
+
}), page.ref ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: page.ref }) : scope ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: page.key ? `${scope}#${page.key}` : scope }) : null]
|
|
51
71
|
});
|
|
52
72
|
}
|
|
53
|
-
|
|
73
|
+
var MENTION_LINK_CLASS = "text-foreground underline decoration-dotted underline-offset-2 hover:decoration-solid";
|
|
74
|
+
/**
|
|
75
|
+
* The refs a tool result resolves: the page's own id and ref, and every ref a note in the result
|
|
76
|
+
* mentions (the server resolved those to page ids). A page body's links usually reappear in a note's
|
|
77
|
+
* mentions; any that don't stay plain, since a chat has no page store to look them up in.
|
|
78
|
+
*/
|
|
79
|
+
function resultRefIds(page, notes) {
|
|
80
|
+
const ids = /* @__PURE__ */ new Map();
|
|
81
|
+
if (page) {
|
|
82
|
+
ids.set(page.id, page.id);
|
|
83
|
+
if (page.ref) ids.set(page.ref, page.id);
|
|
84
|
+
}
|
|
85
|
+
for (const note of notes) {
|
|
86
|
+
if (!require_domains_chat_messages_signal_data.isRecord(note.mentions)) continue;
|
|
87
|
+
for (const [ref, id] of Object.entries(note.mentions)) if (typeof id === "string" && id) ids.set(ref, id);
|
|
88
|
+
}
|
|
89
|
+
return ids;
|
|
90
|
+
}
|
|
91
|
+
var BodyRefs = (0, react.createContext)(/* @__PURE__ */ new Map());
|
|
92
|
+
/** A `[[ref]]` in a card body: a link when the result resolves it, the ref as quiet text when not. */
|
|
93
|
+
function BodyRef({ node, ...props }) {
|
|
94
|
+
const refIds = (0, react.useContext)(BodyRefs);
|
|
95
|
+
const raw = node?.properties[require_domains_knowledge_lib_remarkKnowledgeLinks.KNOWLEDGE_REF_PROPERTY];
|
|
96
|
+
if (typeof raw !== "string") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { ...props });
|
|
97
|
+
const ref = raw.trim();
|
|
98
|
+
const pageId = refIds.get(ref);
|
|
99
|
+
return pageId ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_knowledge_links.KnowledgePageLink, {
|
|
100
|
+
pageId,
|
|
101
|
+
className: MENTION_LINK_CLASS,
|
|
102
|
+
children: ref
|
|
103
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
104
|
+
className: "text-foreground",
|
|
105
|
+
"data-testid": "knowledge-unresolved-mention",
|
|
106
|
+
children: ref
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
var BODY_REMARK_PLUGINS = [require_domains_knowledge_lib_remarkKnowledgeLinks.remarkKnowledgeLinks];
|
|
110
|
+
var BODY_COMPONENTS = { span: BodyRef };
|
|
111
|
+
function Body({ markdown, refIds = /* @__PURE__ */ new Map() }) {
|
|
54
112
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
55
113
|
className: "border-border1 max-h-64 overflow-auto rounded-md border p-2",
|
|
56
114
|
"data-testid": "knowledge-tool-body",
|
|
57
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
115
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BodyRefs.Provider, {
|
|
116
|
+
value: refIds,
|
|
117
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MarkdownRenderer.MarkdownRenderer, {
|
|
118
|
+
remarkPlugins: BODY_REMARK_PLUGINS,
|
|
119
|
+
components: BODY_COMPONENTS,
|
|
120
|
+
children: markdown
|
|
121
|
+
})
|
|
122
|
+
})
|
|
58
123
|
});
|
|
59
124
|
}
|
|
60
125
|
var MENTION = /\[\[([^\]]+)\]\]/g;
|
|
@@ -69,7 +134,7 @@ function NoteText({ note }) {
|
|
|
69
134
|
parts.push(note.text.slice(last, match.index));
|
|
70
135
|
parts.push(pageId ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_knowledge_links.KnowledgePageLink, {
|
|
71
136
|
pageId,
|
|
72
|
-
className:
|
|
137
|
+
className: MENTION_LINK_CLASS,
|
|
73
138
|
children: ref
|
|
74
139
|
}, match.index) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
75
140
|
className: "text-foreground",
|
|
@@ -98,10 +163,70 @@ function NoteList({ notes }) {
|
|
|
98
163
|
}, note.id))
|
|
99
164
|
});
|
|
100
165
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (
|
|
166
|
+
function asListEntry(value) {
|
|
167
|
+
if (!require_domains_chat_messages_signal_data.isRecord(value) || !str(value.ref) || typeof value.name !== "string") return void 0;
|
|
168
|
+
if (typeof value.depth !== "number" || typeof value.children !== "number") return void 0;
|
|
169
|
+
return value;
|
|
170
|
+
}
|
|
171
|
+
var DEPTH_INDENT = [
|
|
172
|
+
"",
|
|
173
|
+
"pl-4",
|
|
174
|
+
"pl-8"
|
|
175
|
+
];
|
|
176
|
+
/** A `knowledge_list` result as an indented tree: each name links to its page (scopes to their scope page), with its ref and child count. */
|
|
177
|
+
function ListTree({ entries }) {
|
|
178
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
179
|
+
className: "flex max-h-64 flex-col gap-1 overflow-auto",
|
|
180
|
+
"data-testid": "knowledge-list-entries",
|
|
181
|
+
children: entries.map((entry, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
182
|
+
className: `flex min-w-0 flex-col ${DEPTH_INDENT[Math.min(Math.max(entry.depth, 1), 3) - 1]}`,
|
|
183
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
184
|
+
className: "flex min-w-0 items-baseline gap-2",
|
|
185
|
+
children: [
|
|
186
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
187
|
+
as: "span",
|
|
188
|
+
variant: "label",
|
|
189
|
+
className: "truncate",
|
|
190
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_knowledge_links.KnowledgePageLink, {
|
|
191
|
+
pageRef: entry.ref,
|
|
192
|
+
children: entry.name
|
|
193
|
+
})
|
|
194
|
+
}),
|
|
195
|
+
entry.ref !== entry.name ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: entry.ref }) : null,
|
|
196
|
+
entry.children ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: [
|
|
197
|
+
entry.children,
|
|
198
|
+
" ",
|
|
199
|
+
entry.children === 1 ? "child" : "children"
|
|
200
|
+
] }) : null
|
|
201
|
+
]
|
|
202
|
+
}), entry.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: entry.description }) : null]
|
|
203
|
+
}, `${entry.ref}-${index}`))
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
var FAILED_TITLES = {
|
|
207
|
+
knowledge_search: "Couldn't search Knowledge",
|
|
208
|
+
knowledge_read: "Couldn't read",
|
|
209
|
+
knowledge_page: "Couldn't change page",
|
|
210
|
+
knowledge_note: "Couldn't change note",
|
|
211
|
+
knowledge_pin: "Couldn't change pin"
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* What each Knowledge tool's settled result says, or null when the shape isn't one we know.
|
|
215
|
+
* A failed call (`errorText` set) gets a card naming what it tried and the error it got.
|
|
216
|
+
*/
|
|
217
|
+
function knowledgeCard(toolName, input, output, errorText) {
|
|
104
218
|
const args = require_domains_chat_messages_signal_data.isRecord(input) ? input : {};
|
|
219
|
+
const failedTitle = FAILED_TITLES[toolName];
|
|
220
|
+
if (errorText !== void 0 && failedTitle) return {
|
|
221
|
+
title: failedTitle,
|
|
222
|
+
detail: str(args.page) ?? str(args.query),
|
|
223
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tool_call.ToolCallOutput, {
|
|
224
|
+
text: errorText || "The tool call failed.",
|
|
225
|
+
error: true,
|
|
226
|
+
"data-testid": "knowledge-tool-error"
|
|
227
|
+
})
|
|
228
|
+
};
|
|
229
|
+
if (!require_domains_chat_messages_signal_data.isRecord(output)) return null;
|
|
105
230
|
switch (toolName) {
|
|
106
231
|
case "knowledge_search": {
|
|
107
232
|
if (!Array.isArray(output.results)) return null;
|
|
@@ -143,19 +268,25 @@ function knowledgeCard(toolName, input, output) {
|
|
|
143
268
|
})
|
|
144
269
|
};
|
|
145
270
|
}
|
|
271
|
+
const extent = require_domains_chat_tools_badges_knowledge_body_range.readExtent(output, args);
|
|
146
272
|
const notes = asNotes(output.notes);
|
|
147
273
|
const children = Array.isArray(output.children) ? output.children.map(asPage).filter((child) => child !== void 0) : [];
|
|
148
274
|
const mentionedIn = asNotes(output.mentionedIn);
|
|
149
275
|
const childScopes = Array.isArray(output.childScopes) ? output.childScopes.filter(require_domains_chat_messages_signal_data.isRecord) : [];
|
|
150
276
|
return {
|
|
151
277
|
title: "Read",
|
|
152
|
-
detail: page.name,
|
|
278
|
+
detail: withExtent(page.name, extent),
|
|
153
279
|
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
154
280
|
className: "flex flex-col gap-2",
|
|
155
281
|
children: [
|
|
156
282
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLine, { page }),
|
|
283
|
+
extent ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: extent.summary }) : null,
|
|
157
284
|
page.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: page.description }) : null,
|
|
158
|
-
page.body ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Body, {
|
|
285
|
+
page.body ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Body, {
|
|
286
|
+
markdown: page.body,
|
|
287
|
+
refIds: resultRefIds(page, [...notes, ...mentionedIn])
|
|
288
|
+
}) : null,
|
|
289
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReadLines, { page: output.page }),
|
|
159
290
|
notes.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoteList, { notes }) : null,
|
|
160
291
|
children.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: ["Child pages: ", children.map((child) => child.name).join(", ")] }) : null,
|
|
161
292
|
childScopes.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: [
|
|
@@ -186,13 +317,15 @@ function knowledgeCard(toolName, input, output) {
|
|
|
186
317
|
const title = op === "move" ? "Moved page" : op === "merge" ? "Merged page" : args.page ? "Updated page" : "Created page";
|
|
187
318
|
const body = str(args.body);
|
|
188
319
|
const description = str(args.description);
|
|
320
|
+
const extent = require_domains_chat_tools_badges_knowledge_body_range.writeExtent(args);
|
|
189
321
|
return {
|
|
190
322
|
title,
|
|
191
|
-
detail: page.name,
|
|
323
|
+
detail: withExtent(page.name, extent),
|
|
192
324
|
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
193
325
|
className: "flex flex-col gap-2",
|
|
194
326
|
children: [
|
|
195
327
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLine, { page }),
|
|
328
|
+
extent ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: extent.summary }) : null,
|
|
196
329
|
op === "merge" && str(args.page) ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: [
|
|
197
330
|
"Merged ",
|
|
198
331
|
str(args.page),
|
|
@@ -200,7 +333,10 @@ function knowledgeCard(toolName, input, output) {
|
|
|
200
333
|
] }) : null,
|
|
201
334
|
typeof page.version === "number" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: ["Version ", page.version] }) : null,
|
|
202
335
|
description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: description }) : null,
|
|
203
|
-
body ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Body, {
|
|
336
|
+
body ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Body, {
|
|
337
|
+
markdown: body,
|
|
338
|
+
refIds: resultRefIds(page, [])
|
|
339
|
+
}) : null
|
|
204
340
|
]
|
|
205
341
|
})
|
|
206
342
|
};
|
|
@@ -247,6 +383,20 @@ function knowledgeCard(toolName, input, output) {
|
|
|
247
383
|
})
|
|
248
384
|
};
|
|
249
385
|
}
|
|
386
|
+
case "knowledge_list": {
|
|
387
|
+
if (!Array.isArray(output.entries)) return null;
|
|
388
|
+
const entries = output.entries.map(asListEntry).filter((entry) => entry !== void 0);
|
|
389
|
+
const from = str(args.from);
|
|
390
|
+
const more = str(output.nextCursor) || output.more !== void 0;
|
|
391
|
+
return {
|
|
392
|
+
title: from ? "Listed pages" : "Listed Knowledge scopes",
|
|
393
|
+
detail: from,
|
|
394
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
395
|
+
className: "flex flex-col gap-2",
|
|
396
|
+
children: [entries.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListTree, { entries }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: from ? "No pages under it" : "No scopes" }), more ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: "More entries not shown" }) : null]
|
|
397
|
+
})
|
|
398
|
+
};
|
|
399
|
+
}
|
|
250
400
|
default: return null;
|
|
251
401
|
}
|
|
252
402
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-tool-badge.cjs.js","names":["isRecord","KnowledgePageLink","Txt","MarkdownRenderer","_Fragment","ToolApprovalBadge","BookOpen"],"sources":["../../../../../src/domains/chat/tools/badges/knowledge-tool-badge.tsx"],"sourcesContent":["import { BookOpen } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { KnowledgePageLink } from '../../knowledge/knowledge-links';\nimport { isRecord } from '../../messages/signal-data';\nimport type { MessageMetadata } from '@/domains/chat';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Txt } from '@/ds/components/Txt';\n\n/** The tools `Knowledge.createTools()` gives an agent. */\nexport const KNOWLEDGE_TOOLS = new Set([\n 'knowledge_search',\n 'knowledge_read',\n 'knowledge_page',\n 'knowledge_note',\n 'knowledge_pin',\n]);\n\ninterface PageSummary {\n id: string;\n name: string;\n address?: string;\n scope?: string;\n key?: string;\n description?: string;\n version?: number;\n body?: string;\n}\n\ninterface NoteSummary {\n id: string;\n text: string;\n author?: string;\n page?: PageSummary;\n /** Which `[[ref]]` in `text` links to which page id; refs the server couldn't resolve aren't here. */\n mentions?: Record<string, string>;\n}\n\nconst str = (value: unknown): string | undefined => (typeof value === 'string' && value ? value : undefined);\n\nfunction asPage(value: unknown): PageSummary | undefined {\n if (!isRecord(value) || !str(value.id) || typeof value.name !== 'string') return undefined;\n return value as unknown as PageSummary;\n}\n\nfunction asNotes(value: unknown): NoteSummary[] {\n return Array.isArray(value)\n ? value.filter((note): note is NoteSummary => isRecord(note) && typeof note.text === 'string')\n : [];\n}\n\nconst where = (page: PageSummary) => page.address ?? page.scope;\n\nfunction PageLink({ page }: { page: PageSummary }) {\n return <KnowledgePageLink pageId={page.id}>{page.name}</KnowledgePageLink>;\n}\n\nfunction Meta({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\nfunction PageLine({ page, linked = true }: { page: PageSummary; linked?: boolean }) {\n const scope = where(page);\n return (\n <div className=\"flex min-w-0 items-baseline gap-2\">\n <Txt as=\"span\" variant=\"label\">\n {linked ? <PageLink page={page} /> : page.name}\n </Txt>\n {scope ? <Meta>{page.key ? `${scope}#${page.key}` : scope}</Meta> : null}\n </div>\n );\n}\n\nfunction Body({ markdown }: { markdown: string }) {\n return (\n <div className=\"border-border1 max-h-64 overflow-auto rounded-md border p-2\" data-testid=\"knowledge-tool-body\">\n <MarkdownRenderer>{markdown}</MarkdownRenderer>\n </div>\n );\n}\n\nconst MENTION = /\\[\\[([^\\]]+)\\]\\]/g;\n\n/** A note's text with each resolved `[[Page Name]]` linking to its page; unresolved names stay plain. */\nfunction NoteText({ note }: { note: NoteSummary }) {\n const parts: ReactNode[] = [];\n let last = 0;\n for (const match of note.text.matchAll(MENTION)) {\n const ref = (match[1] ?? '').trim();\n // Own string values only: `[[constructor]]` must not read Object.prototype.\n const mentioned = note.mentions && Object.hasOwn(note.mentions, ref) ? note.mentions[ref] : undefined;\n const pageId = typeof mentioned === 'string' ? mentioned : undefined;\n parts.push(note.text.slice(last, match.index));\n parts.push(\n pageId ? (\n <KnowledgePageLink\n key={match.index}\n pageId={pageId}\n className=\"text-foreground underline decoration-dotted underline-offset-2 hover:decoration-solid\"\n >\n {ref}\n </KnowledgePageLink>\n ) : (\n <span key={match.index} className=\"text-foreground\" data-testid=\"knowledge-unresolved-mention\">\n {ref}\n </span>\n ),\n );\n last = match.index + match[0].length;\n }\n parts.push(note.text.slice(last));\n return <>{parts}</>;\n}\n\nfunction NoteList({ notes }: { notes: NoteSummary[] }) {\n return (\n <ul className=\"flex flex-col gap-1\">\n {notes.map(note => (\n <li key={note.id} className=\"flex flex-col\">\n <Txt as=\"span\" variant=\"body\">\n <NoteText note={note} />\n </Txt>\n {note.page || note.author ? (\n <Meta>\n {note.page ? <PageLink page={note.page} /> : null}\n {note.page && note.author ? ' · ' : null}\n {note.author}\n </Meta>\n ) : null}\n </li>\n ))}\n </ul>\n );\n}\n\nexport interface KnowledgeCard {\n title: string;\n detail?: string;\n body: ReactNode;\n}\n\n/** What each Knowledge tool's settled result says, or null when the shape isn't one we know. */\nexport function knowledgeCard(toolName: string, input: unknown, output: unknown): KnowledgeCard | null {\n if (!isRecord(output)) return null;\n const args = isRecord(input) ? input : {};\n switch (toolName) {\n case 'knowledge_search': {\n if (!Array.isArray(output.results)) return null;\n const hits = output.results.filter(isRecord);\n return {\n title: 'Searched Knowledge',\n detail: str(args.query),\n body: hits.length ? (\n <ul className=\"flex flex-col gap-1.5\">\n {hits.map((hit, index) => {\n const page = asPage(hit.page);\n const [note] = asNotes([hit.note]);\n return page ? (\n <li key={`${page.id}-${note?.id ?? index}`} className=\"flex flex-col\">\n <PageLine page={page} />\n {note ? (\n <Meta>\n <NoteText note={note} />\n </Meta>\n ) : null}\n </li>\n ) : null;\n })}\n </ul>\n ) : (\n <Meta>No matches</Meta>\n ),\n };\n }\n case 'knowledge_read': {\n const page = asPage(output.page);\n if (!page) {\n if (!Array.isArray(output.scopes)) return null;\n const scopes = output.scopes.filter(isRecord);\n return {\n title: 'Listed Knowledge scopes',\n body: (\n <ul className=\"flex flex-col gap-1\">\n {scopes.map(scope => (\n <li key={String(scope.address)}>\n <Txt as=\"span\" variant=\"body\">\n {String(scope.name)}\n </Txt>{' '}\n <Meta>{String(scope.address)}</Meta>\n </li>\n ))}\n </ul>\n ),\n };\n }\n const notes = asNotes(output.notes);\n const children = Array.isArray(output.children)\n ? output.children.map(asPage).filter((child): child is PageSummary => child !== undefined)\n : [];\n const mentionedIn = asNotes(output.mentionedIn);\n const childScopes = Array.isArray(output.childScopes) ? output.childScopes.filter(isRecord) : [];\n return {\n title: 'Read',\n detail: page.name,\n body: (\n <div className=\"flex flex-col gap-2\">\n <PageLine page={page} />\n {page.description ? <Meta>{page.description}</Meta> : null}\n {page.body ? <Body markdown={page.body} /> : null}\n {notes.length ? <NoteList notes={notes} /> : null}\n {children.length ? <Meta>Child pages: {children.map(child => child.name).join(', ')}</Meta> : null}\n {childScopes.length ? (\n <Meta>\n Child scopes:{' '}\n {childScopes\n .map(scope =>\n scope.address ? `${String(scope.name)} (${String(scope.address)})` : String(scope.name),\n )\n .join(', ')}\n </Meta>\n ) : null}\n {mentionedIn.length ? (\n <div className=\"flex flex-col gap-1\">\n <Meta>Mentioned in</Meta>\n <NoteList notes={mentionedIn} />\n </div>\n ) : null}\n </div>\n ),\n };\n }\n case 'knowledge_page': {\n const page = asPage(output.page);\n if (!page) return null;\n const op = str(args.op);\n if (op === 'delete') {\n // The page no longer exists, so name it without a link.\n return { title: 'Deleted page', detail: page.name, body: <PageLine page={page} linked={false} /> };\n }\n const title =\n op === 'move' ? 'Moved page' : op === 'merge' ? 'Merged page' : args.page ? 'Updated page' : 'Created page';\n const body = str(args.body);\n const description = str(args.description);\n return {\n title,\n detail: page.name,\n body: (\n <div className=\"flex flex-col gap-2\">\n <PageLine page={page} />\n {op === 'merge' && str(args.page) ? <Meta>Merged {str(args.page)} into this page</Meta> : null}\n {typeof page.version === 'number' ? <Meta>Version {page.version}</Meta> : null}\n {description ? <Meta>{description}</Meta> : null}\n {body ? <Body markdown={body} /> : null}\n </div>\n ),\n };\n }\n case 'knowledge_note': {\n if (str(output.removed)) return { title: 'Removed note', body: <Meta>Note {String(output.removed)}</Meta> };\n const [note] = asNotes([output.note]);\n if (!note) return null;\n const pageRef = str(args.page);\n const pageId = str(output.page);\n return {\n title: str(args.op) === 'restamp' ? 'Restamped note' : 'Added note',\n detail: pageRef,\n body: (\n <div className=\"flex flex-col gap-1\">\n <Txt as=\"span\" variant=\"body\">\n <NoteText note={note} />\n </Txt>\n {pageId ? (\n <Meta>\n On <PageLink page={{ id: pageId, name: pageRef ?? 'the page' }} />\n </Meta>\n ) : null}\n </div>\n ),\n };\n }\n case 'knowledge_pin': {\n const pageId = str(output.page);\n if (!pageId || !Array.isArray(output.audience)) return null;\n const pageRef = str(args.page);\n const audience = output.audience.filter((entry): entry is string => typeof entry === 'string');\n return {\n title: str(args.op) === 'unpin' ? 'Unpinned page' : 'Pinned page',\n detail: pageRef,\n body: (\n <div className=\"flex flex-col gap-1\">\n <Meta>\n <PageLink page={{ id: pageId, name: pageRef ?? 'the page' }} />\n </Meta>\n <Meta>{audience.length ? `Pinned for ${audience.join(', ')}` : 'No longer pinned for anyone'}</Meta>\n </div>\n ),\n };\n }\n default:\n return null;\n }\n}\n\nexport interface KnowledgeToolBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n card: KnowledgeCard;\n metadata?: MessageMetadata;\n status?: ActivityStatus;\n}\n\nexport const KnowledgeToolBadge = ({\n card,\n toolName,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n isNetwork,\n status = 'idle',\n}: KnowledgeToolBadgeProps) => (\n <ToolApprovalBadge\n approval={{\n toolCalled: true,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"knowledge-tool-badge\"\n icon={<BookOpen aria-hidden />}\n title={card.title}\n detail={card.detail}\n status={status}\n >\n {card.body}\n </ToolApprovalBadge>\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"knowledge-tool-badge.cjs.js","names":["isRecord","Txt","KnowledgePageLink","createContext","useContext","KNOWLEDGE_REF_PROPERTY","remarkKnowledgeLinks","MarkdownRenderer","_Fragment","ToolCallOutput","readExtent","writeExtent","ToolApprovalBadge","BookOpen"],"sources":["../../../../../src/domains/chat/tools/badges/knowledge-tool-badge.tsx"],"sourcesContent":["import { BookOpen } from 'lucide-react';\nimport { createContext, useContext } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport type { Components, ExtraProps } from 'react-markdown';\nimport { KnowledgePageLink } from '../../knowledge/knowledge-links';\nimport { isRecord } from '../../messages/signal-data';\nimport type { BodyExtent } from './knowledge-body-range';\nimport { readExtent, writeExtent } from './knowledge-body-range';\nimport type { MessageMetadata } from '@/domains/chat';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { KNOWLEDGE_REF_PROPERTY, remarkKnowledgeLinks } from '@/domains/knowledge/lib/remarkKnowledgeLinks';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { ToolCallOutput } from '@/ds/components/ai/tool-call';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Txt } from '@/ds/components/Txt';\n\n/** The tools `Knowledge.createTools()` gives an agent. */\nexport const KNOWLEDGE_TOOLS = new Set([\n 'knowledge_search',\n 'knowledge_read',\n 'knowledge_page',\n 'knowledge_note',\n 'knowledge_pin',\n 'knowledge_list',\n]);\n\ninterface PageSummary {\n id: string;\n name: string;\n address?: string;\n scope?: string;\n /** The full readable ref (`docs:mastra#observability/logging`); older cores send only the last `key`. */\n ref?: string;\n key?: string;\n description?: string;\n version?: number;\n body?: string;\n}\n\ninterface NoteSummary {\n id: string;\n text: string;\n author?: string;\n page?: PageSummary;\n /** Which `[[ref]]` in `text` links to which page id; refs the server couldn't resolve aren't here. */\n mentions?: Record<string, string>;\n}\n\nconst str = (value: unknown): string | undefined => (typeof value === 'string' && value ? value : undefined);\n\nfunction asPage(value: unknown): PageSummary | undefined {\n if (!isRecord(value) || !str(value.id) || typeof value.name !== 'string') return undefined;\n return value as unknown as PageSummary;\n}\n\nfunction asNotes(value: unknown): NoteSummary[] {\n return Array.isArray(value)\n ? value.filter((note): note is NoteSummary => isRecord(note) && typeof note.text === 'string')\n : [];\n}\n\n/** The collapsed row's detail: the page name, then which part of it was read or written. */\nconst withExtent = (name: string, extent: BodyExtent | undefined) => (extent?.row ? `${name} · ${extent.row}` : name);\n\n/** The numbered lines of a part read: a window, or each match, under the range it covers. */\nfunction ReadLines({ page }: { page: unknown }) {\n if (!isRecord(page)) return null;\n const parts = Array.isArray(page.matches)\n ? page.matches.filter(isRecord).map(match => str(match.lines))\n : [str(page.lines)];\n const lines = parts.filter((part): part is string => part !== undefined);\n if (!lines.length) return null;\n return (\n <Txt as=\"p\" variant=\"meta\" font=\"mono\" className=\"whitespace-pre-wrap\">\n {lines.join('\\n⋯\\n')}\n </Txt>\n );\n}\n\nconst where = (page: PageSummary) => page.address ?? page.scope;\n\nfunction PageLink({ page }: { page: PageSummary }) {\n return <KnowledgePageLink pageId={page.id}>{page.name}</KnowledgePageLink>;\n}\n\nfunction Meta({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\nfunction PageLine({ page, linked = true }: { page: PageSummary; linked?: boolean }) {\n const scope = where(page);\n return (\n <div className=\"flex min-w-0 items-baseline gap-2\">\n <Txt as=\"span\" variant=\"label\">\n {linked ? <PageLink page={page} /> : page.name}\n </Txt>\n {page.ref ? <Meta>{page.ref}</Meta> : scope ? <Meta>{page.key ? `${scope}#${page.key}` : scope}</Meta> : null}\n </div>\n );\n}\n\nconst MENTION_LINK_CLASS = 'text-foreground underline decoration-dotted underline-offset-2 hover:decoration-solid';\n\n/** Which page id each `[[ref]]` a card shows answers to, as far as this tool result says. */\ntype RefIds = ReadonlyMap<string, string>;\n\n/**\n * The refs a tool result resolves: the page's own id and ref, and every ref a note in the result\n * mentions (the server resolved those to page ids). A page body's links usually reappear in a note's\n * mentions; any that don't stay plain, since a chat has no page store to look them up in.\n */\nfunction resultRefIds(page: PageSummary | undefined, notes: NoteSummary[]): RefIds {\n const ids = new Map<string, string>();\n if (page) {\n ids.set(page.id, page.id);\n if (page.ref) ids.set(page.ref, page.id);\n }\n for (const note of notes) {\n if (!isRecord(note.mentions)) continue;\n for (const [ref, id] of Object.entries(note.mentions)) {\n if (typeof id === 'string' && id) ids.set(ref, id);\n }\n }\n return ids;\n}\n\nconst BodyRefs = createContext<RefIds>(new Map());\n\n/** A `[[ref]]` in a card body: a link when the result resolves it, the ref as quiet text when not. */\nfunction BodyRef({ node, ...props }: ComponentProps<'span'> & ExtraProps) {\n const refIds = useContext(BodyRefs);\n const raw = node?.properties[KNOWLEDGE_REF_PROPERTY];\n if (typeof raw !== 'string') return <span {...props} />;\n const ref = raw.trim();\n const pageId = refIds.get(ref);\n return pageId ? (\n <KnowledgePageLink pageId={pageId} className={MENTION_LINK_CLASS}>\n {ref}\n </KnowledgePageLink>\n ) : (\n <span className=\"text-foreground\" data-testid=\"knowledge-unresolved-mention\">\n {ref}\n </span>\n );\n}\n\nconst BODY_REMARK_PLUGINS = [remarkKnowledgeLinks];\nconst BODY_COMPONENTS: Components = { span: BodyRef };\n\nfunction Body({ markdown, refIds = new Map() }: { markdown: string; refIds?: RefIds }) {\n return (\n <div className=\"border-border1 max-h-64 overflow-auto rounded-md border p-2\" data-testid=\"knowledge-tool-body\">\n <BodyRefs.Provider value={refIds}>\n <MarkdownRenderer remarkPlugins={BODY_REMARK_PLUGINS} components={BODY_COMPONENTS}>\n {markdown}\n </MarkdownRenderer>\n </BodyRefs.Provider>\n </div>\n );\n}\n\nconst MENTION = /\\[\\[([^\\]]+)\\]\\]/g;\n\n/** A note's text with each resolved `[[Page Name]]` linking to its page; unresolved names stay plain. */\nfunction NoteText({ note }: { note: NoteSummary }) {\n const parts: ReactNode[] = [];\n let last = 0;\n for (const match of note.text.matchAll(MENTION)) {\n const ref = (match[1] ?? '').trim();\n // Own string values only: `[[constructor]]` must not read Object.prototype.\n const mentioned = note.mentions && Object.hasOwn(note.mentions, ref) ? note.mentions[ref] : undefined;\n const pageId = typeof mentioned === 'string' ? mentioned : undefined;\n parts.push(note.text.slice(last, match.index));\n parts.push(\n pageId ? (\n <KnowledgePageLink key={match.index} pageId={pageId} className={MENTION_LINK_CLASS}>\n {ref}\n </KnowledgePageLink>\n ) : (\n <span key={match.index} className=\"text-foreground\" data-testid=\"knowledge-unresolved-mention\">\n {ref}\n </span>\n ),\n );\n last = match.index + match[0].length;\n }\n parts.push(note.text.slice(last));\n return <>{parts}</>;\n}\n\nfunction NoteList({ notes }: { notes: NoteSummary[] }) {\n return (\n <ul className=\"flex flex-col gap-1\">\n {notes.map(note => (\n <li key={note.id} className=\"flex flex-col\">\n <Txt as=\"span\" variant=\"body\">\n <NoteText note={note} />\n </Txt>\n {note.page || note.author ? (\n <Meta>\n {note.page ? <PageLink page={note.page} /> : null}\n {note.page && note.author ? ' · ' : null}\n {note.author}\n </Meta>\n ) : null}\n </li>\n ))}\n </ul>\n );\n}\n\n/** One entry of a `knowledge_list` result: a page or scope at some depth below the starting point. */\ninterface ListEntry {\n ref: string;\n name: string;\n description?: string;\n depth: number;\n children: number;\n scope?: boolean;\n}\n\nfunction asListEntry(value: unknown): ListEntry | undefined {\n if (!isRecord(value) || !str(value.ref) || typeof value.name !== 'string') return undefined;\n if (typeof value.depth !== 'number' || typeof value.children !== 'number') return undefined;\n return value as unknown as ListEntry;\n}\n\nconst DEPTH_INDENT = ['', 'pl-4', 'pl-8'] as const;\n\n/** A `knowledge_list` result as an indented tree: each name links to its page (scopes to their scope page), with its ref and child count. */\nfunction ListTree({ entries }: { entries: ListEntry[] }) {\n return (\n <ul className=\"flex max-h-64 flex-col gap-1 overflow-auto\" data-testid=\"knowledge-list-entries\">\n {entries.map((entry, index) => (\n <li\n key={`${entry.ref}-${index}`}\n className={`flex min-w-0 flex-col ${DEPTH_INDENT[Math.min(Math.max(entry.depth, 1), 3) - 1]}`}\n >\n <div className=\"flex min-w-0 items-baseline gap-2\">\n <Txt as=\"span\" variant=\"label\" className=\"truncate\">\n <KnowledgePageLink pageRef={entry.ref}>{entry.name}</KnowledgePageLink>\n </Txt>\n {entry.ref !== entry.name ? <Meta>{entry.ref}</Meta> : null}\n {entry.children ? (\n <Meta>\n {entry.children} {entry.children === 1 ? 'child' : 'children'}\n </Meta>\n ) : null}\n </div>\n {entry.description ? <Meta>{entry.description}</Meta> : null}\n </li>\n ))}\n </ul>\n );\n}\n\nexport interface KnowledgeCard {\n title: string;\n detail?: string;\n body: ReactNode;\n}\n\nconst FAILED_TITLES: Record<string, string> = {\n knowledge_search: \"Couldn't search Knowledge\",\n knowledge_read: \"Couldn't read\",\n knowledge_page: \"Couldn't change page\",\n knowledge_note: \"Couldn't change note\",\n knowledge_pin: \"Couldn't change pin\",\n};\n\n/**\n * What each Knowledge tool's settled result says, or null when the shape isn't one we know.\n * A failed call (`errorText` set) gets a card naming what it tried and the error it got.\n */\nexport function knowledgeCard(\n toolName: string,\n input: unknown,\n output: unknown,\n errorText?: string,\n): KnowledgeCard | null {\n const args = isRecord(input) ? input : {};\n const failedTitle = FAILED_TITLES[toolName];\n if (errorText !== undefined && failedTitle) {\n return {\n title: failedTitle,\n detail: str(args.page) ?? str(args.query),\n body: <ToolCallOutput text={errorText || 'The tool call failed.'} error data-testid=\"knowledge-tool-error\" />,\n };\n }\n if (!isRecord(output)) return null;\n switch (toolName) {\n case 'knowledge_search': {\n if (!Array.isArray(output.results)) return null;\n const hits = output.results.filter(isRecord);\n return {\n title: 'Searched Knowledge',\n detail: str(args.query),\n body: hits.length ? (\n <ul className=\"flex flex-col gap-1.5\">\n {hits.map((hit, index) => {\n const page = asPage(hit.page);\n const [note] = asNotes([hit.note]);\n return page ? (\n <li key={`${page.id}-${note?.id ?? index}`} className=\"flex flex-col\">\n <PageLine page={page} />\n {note ? (\n <Meta>\n <NoteText note={note} />\n </Meta>\n ) : null}\n </li>\n ) : null;\n })}\n </ul>\n ) : (\n <Meta>No matches</Meta>\n ),\n };\n }\n case 'knowledge_read': {\n const page = asPage(output.page);\n if (!page) {\n if (!Array.isArray(output.scopes)) return null;\n const scopes = output.scopes.filter(isRecord);\n return {\n title: 'Listed Knowledge scopes',\n body: (\n <ul className=\"flex flex-col gap-1\">\n {scopes.map(scope => (\n <li key={String(scope.address)}>\n <Txt as=\"span\" variant=\"body\">\n {String(scope.name)}\n </Txt>{' '}\n <Meta>{String(scope.address)}</Meta>\n </li>\n ))}\n </ul>\n ),\n };\n }\n const extent = readExtent(output, args);\n const notes = asNotes(output.notes);\n const children = Array.isArray(output.children)\n ? output.children.map(asPage).filter((child): child is PageSummary => child !== undefined)\n : [];\n const mentionedIn = asNotes(output.mentionedIn);\n const childScopes = Array.isArray(output.childScopes) ? output.childScopes.filter(isRecord) : [];\n return {\n title: 'Read',\n detail: withExtent(page.name, extent),\n body: (\n <div className=\"flex flex-col gap-2\">\n <PageLine page={page} />\n {extent ? <Meta>{extent.summary}</Meta> : null}\n {page.description ? <Meta>{page.description}</Meta> : null}\n {page.body ? <Body markdown={page.body} refIds={resultRefIds(page, [...notes, ...mentionedIn])} /> : null}\n <ReadLines page={output.page} />\n {notes.length ? <NoteList notes={notes} /> : null}\n {children.length ? <Meta>Child pages: {children.map(child => child.name).join(', ')}</Meta> : null}\n {childScopes.length ? (\n <Meta>\n Child scopes:{' '}\n {childScopes\n .map(scope =>\n scope.address ? `${String(scope.name)} (${String(scope.address)})` : String(scope.name),\n )\n .join(', ')}\n </Meta>\n ) : null}\n {mentionedIn.length ? (\n <div className=\"flex flex-col gap-1\">\n <Meta>Mentioned in</Meta>\n <NoteList notes={mentionedIn} />\n </div>\n ) : null}\n </div>\n ),\n };\n }\n case 'knowledge_page': {\n const page = asPage(output.page);\n if (!page) return null;\n const op = str(args.op);\n if (op === 'delete') {\n // The page no longer exists, so name it without a link.\n return { title: 'Deleted page', detail: page.name, body: <PageLine page={page} linked={false} /> };\n }\n const title =\n op === 'move' ? 'Moved page' : op === 'merge' ? 'Merged page' : args.page ? 'Updated page' : 'Created page';\n const body = str(args.body);\n const description = str(args.description);\n const extent = writeExtent(args);\n return {\n title,\n detail: withExtent(page.name, extent),\n body: (\n <div className=\"flex flex-col gap-2\">\n <PageLine page={page} />\n {extent ? <Meta>{extent.summary}</Meta> : null}\n {op === 'merge' && str(args.page) ? <Meta>Merged {str(args.page)} into this page</Meta> : null}\n {typeof page.version === 'number' ? <Meta>Version {page.version}</Meta> : null}\n {description ? <Meta>{description}</Meta> : null}\n {body ? <Body markdown={body} refIds={resultRefIds(page, [])} /> : null}\n </div>\n ),\n };\n }\n case 'knowledge_note': {\n if (str(output.removed)) return { title: 'Removed note', body: <Meta>Note {String(output.removed)}</Meta> };\n const [note] = asNotes([output.note]);\n if (!note) return null;\n const pageRef = str(args.page);\n const pageId = str(output.page);\n return {\n title: str(args.op) === 'restamp' ? 'Restamped note' : 'Added note',\n detail: pageRef,\n body: (\n <div className=\"flex flex-col gap-1\">\n <Txt as=\"span\" variant=\"body\">\n <NoteText note={note} />\n </Txt>\n {pageId ? (\n <Meta>\n On <PageLink page={{ id: pageId, name: pageRef ?? 'the page' }} />\n </Meta>\n ) : null}\n </div>\n ),\n };\n }\n case 'knowledge_pin': {\n const pageId = str(output.page);\n if (!pageId || !Array.isArray(output.audience)) return null;\n const pageRef = str(args.page);\n const audience = output.audience.filter((entry): entry is string => typeof entry === 'string');\n return {\n title: str(args.op) === 'unpin' ? 'Unpinned page' : 'Pinned page',\n detail: pageRef,\n body: (\n <div className=\"flex flex-col gap-1\">\n <Meta>\n <PageLink page={{ id: pageId, name: pageRef ?? 'the page' }} />\n </Meta>\n <Meta>{audience.length ? `Pinned for ${audience.join(', ')}` : 'No longer pinned for anyone'}</Meta>\n </div>\n ),\n };\n }\n case 'knowledge_list': {\n if (!Array.isArray(output.entries)) return null;\n const entries = output.entries.map(asListEntry).filter((entry): entry is ListEntry => entry !== undefined);\n const from = str(args.from);\n const more = str(output.nextCursor) || output.more !== undefined;\n return {\n title: from ? 'Listed pages' : 'Listed Knowledge scopes',\n detail: from,\n body: (\n <div className=\"flex flex-col gap-2\">\n {entries.length ? <ListTree entries={entries} /> : <Meta>{from ? 'No pages under it' : 'No scopes'}</Meta>}\n {more ? <Meta>More entries not shown</Meta> : null}\n </div>\n ),\n };\n }\n default:\n return null;\n }\n}\n\nexport interface KnowledgeToolBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n card: KnowledgeCard;\n metadata?: MessageMetadata;\n status?: ActivityStatus;\n}\n\nexport const KnowledgeToolBadge = ({\n card,\n toolName,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n isNetwork,\n status = 'idle',\n}: KnowledgeToolBadgeProps) => (\n <ToolApprovalBadge\n approval={{\n toolCalled: true,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"knowledge-tool-badge\"\n icon={<BookOpen aria-hidden />}\n title={card.title}\n detail={card.detail}\n status={status}\n >\n {card.body}\n </ToolApprovalBadge>\n);\n"],"mappings":"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"}
|