@mastra/playground-ui 68.0.0-alpha.2 → 68.0.0-alpha.3
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/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/{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/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.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/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/mcp-input-request-tool.cjs.js +240 -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 +239 -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 +8 -3
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +8 -4
- 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/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/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/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/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/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/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/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/MarkdownRenderer/markdown-renderer.d.ts +8 -1
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +6 -0
- package/dist/style.css +69 -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-rxhTDpk_.cjs} +164 -126
- package/dist/tool-card-rxhTDpk_.cjs.map +1 -0
- package/dist/{tool-card-sO6P2Qj4.js → tool-card-toDgoZzJ.js} +165 -127
- package/dist/tool-card-toDgoZzJ.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 +10 -10
- package/dist/MarkdownRenderer-2GOXQJEv.js.map +0 -1
- package/dist/MarkdownRenderer-CB8Z_CHc.cjs.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-DyB5H3gF.cjs","names":["createContext","useContext","createContext","useContext","useState","useId","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","DisclosureChevron","X","CollapsibleContent","ArrivalScope","truncateString","Bell","_Fragment","Badge","Txt","ExternalLink","MarkdownRenderer","agentGlyph","agentGlyph","humanize","Txt","Badge","_Fragment"],"sources":["../src/ds/components/ai/activity/use-relative-paths.ts","../src/ds/components/ai/activity/activity.tsx","../src/ds/components/ai/activity/presets/message-preview.ts","../src/ds/components/ai/activity/presets/notification-activity.tsx","../src/ds/components/ai/activity/presets/reasoning-text.tsx","../src/ds/components/ai/activity/presets/reasoning-visibility.ts","../src/ds/components/ai/activity/presets/reasoning-activity.tsx","../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport const WorkingDirectoryContext = createContext<string | undefined>(undefined);\n\nfunction relativeTo(directory: string | undefined, text: string): string {\n const root = directory?.replace(/\\/+$/, '');\n if (!root) return text;\n const escaped = root.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return text.replace(new RegExp(`(?<![^\\\\s'\"=(])${escaped}(?:/(?=[^\\\\s/])|(?![\\\\w.-]))`, 'g'), match =>\n match.endsWith('/') ? '' : '.',\n );\n}\n\n/** Rewrites text the way `ActivityDetail` shows it, for names that must say the same thing. */\nexport function useRelativePaths(): (text: string) => string {\n const directory = useContext(WorkingDirectoryContext);\n return text => relativeTo(directory, text);\n}\n","import { X } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useRelativePaths, WorkingDirectoryContext } from './use-relative-paths';\nimport { ArrivalScope, useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ActivityStatus = 'idle' | 'running' | 'error';\n\n/** `row` sits on a hover surface; `inline` reads as text beside prose: no surface, no inset, the line lifts on hover. */\ntype ActivityAppearance = 'row' | 'inline';\n\ninterface ActivityContextValue {\n open: boolean;\n foldable: boolean;\n status: ActivityStatus;\n appearance: ActivityAppearance;\n nested: boolean;\n toggle: () => void;\n}\n\nconst LIFTS = 'transition-colors motion-reduce:transition-none';\nconst LIFTS_TO_FOREGROUND = `${LIFTS} group-hover/row:text-foreground group-has-focus-visible/row:text-foreground`;\nconst LIFTS_TO_MUTED = `${LIFTS} group-hover/row:text-muted-foreground group-has-focus-visible/row:text-muted-foreground`;\n\nconst ActivityContext = createContext<ActivityContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useActivity() {\n const context = useContext(ActivityContext);\n if (!context) throw new Error('Activity compounds must be rendered within Activity');\n return context;\n}\n\nfunction useInline() {\n return useContext(ActivityContext)?.appearance === 'inline';\n}\n\nexport interface ActivityProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n foldable?: boolean;\n status?: ActivityStatus;\n appearance?: ActivityAppearance;\n}\n\nexport function Activity({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n foldable = true,\n status = 'idle',\n appearance = 'row',\n className,\n children,\n ...props\n}: ActivityProps) {\n const nested = useContext(ActivityContext) !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? (foldable && uncontrolledOpen);\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ActivityContext.Provider\n value={{ open, foldable, status, appearance, nested, toggle: () => handleOpenChange(!open) }}\n >\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n <span id={statusId} className=\"sr-only\" aria-live=\"polite\">\n {status === 'running' && 'Running'}\n {status === 'error' && 'Failed'}\n </span>\n </Collapsible>\n </ActivityContext.Provider>\n );\n}\n\nexport const ActivityTrigger = ({ className, children, ...props }: ComponentProps<'div'>) => {\n const { foldable, appearance } = useActivity();\n const lineId = useId();\n\n return (\n <div\n className={cn(\n 'group/row relative w-full min-w-0 rounded-md transition-colors motion-reduce:transition-none',\n foldable && appearance === 'row' && 'hover:bg-fill',\n className,\n )}\n {...props}\n >\n {foldable && (\n <CollapsibleTrigger\n aria-labelledby={lineId}\n className=\"absolute inset-0 cursor-pointer rounded-md focus-visible:ring-1 focus-visible:ring-border-focus focus-visible:outline-hidden\"\n />\n )}\n <div id={lineId} className={cn(foldable && 'pointer-events-none relative')}>\n {children}\n </div>\n </div>\n );\n};\n\nexport const ActivityHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status, appearance } = useActivity();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn(\n 'flex min-w-0 items-center gap-2 py-1',\n appearance === 'inline' ? 'w-fit max-w-full' : 'w-full px-1.5',\n className,\n )}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ActivityLeading = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { foldable, toggle } = useActivity();\n\n if (!children) return null;\n\n return (\n <span\n className={cn('pointer-events-auto flex shrink-0 empty:hidden', foldable && 'cursor-pointer', className)}\n onClick={foldable ? toggle : undefined}\n {...props}\n >\n {children}\n </span>\n );\n};\n\nexport const ActivityIcon = ({ className, ...props }: ComponentProps<'span'>) => {\n const { status, appearance } = useActivity();\n\n return (\n <span\n className={cn(\n 'flex size-4 shrink-0 items-center justify-center [&_svg]:size-3.5 [&_svg]:shrink-0',\n status === 'error' ? 'text-destructive-foreground' : 'text-placeholder',\n status !== 'error' && appearance === 'inline' && LIFTS_TO_MUTED,\n className,\n )}\n {...props}\n />\n );\n};\n\nexport interface ActivityLabelProps extends ComponentProps<typeof Txt> {\n wrap?: boolean;\n}\n\nexport const ActivityLabel = ({ wrap = false, className, ...props }: ActivityLabelProps) => {\n const inline = useInline();\n\n return (\n <Txt\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn(\n wrap ? 'min-w-0 break-words' : 'shrink-0 truncate',\n inline ? `max-w-none ${LIFTS_TO_FOREGROUND}` : 'max-w-[55%]',\n className,\n )}\n {...props}\n />\n );\n};\n\n/** Paths under the agent's working directory read relative to it, the way the agent itself refers to them. */\nexport function ActivityWorkingDirectory({ path, children }: { path: string | undefined; children: ReactNode }) {\n return <WorkingDirectoryContext value={path}>{children}</WorkingDirectoryContext>;\n}\n\nexport interface ActivityDetailProps extends Omit<ComponentProps<typeof Txt>, 'font'> {\n wrap?: boolean;\n}\n\nexport const ActivityDetail = ({ wrap = false, className, children, ...props }: ActivityDetailProps) => {\n const arriving = useArriving();\n const inline = useInline();\n const relative = useRelativePaths();\n\n return (\n <Txt\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn('min-w-0', wrap ? 'break-words' : 'truncate', inline && LIFTS_TO_FOREGROUND, arriving, className)}\n {...props}\n >\n {typeof children === 'string' ? relative(children) : children}\n </Txt>\n );\n};\n\nexport const ActivitySummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ActivitySpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ActivitySpacer = ({ rule, className, ...props }: ActivitySpacerProps) => {\n const inline = useInline();\n\n return (\n <span\n aria-hidden\n className={cn(\n 'min-w-2 flex-1',\n rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]',\n inline && !rule && 'hidden',\n className,\n )}\n {...props}\n />\n );\n};\n\nexport const ActivityTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ActivityDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open, foldable, nested } = useActivity();\n\n return (\n <span\n className={cn(\n 'flex size-4 shrink-0 items-center justify-center transition-opacity duration-150 motion-reduce:transition-none starting:opacity-0',\n !foldable && 'hidden',\n foldable && nested && 'hidden group-hover/row:flex group-has-focus-visible/row:flex',\n className,\n )}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground/60 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:text-muted-foreground group-has-focus-visible/row:text-muted-foreground',\n open && 'text-muted-foreground',\n open && children != null && 'rotate-90',\n )}\n >\n {children ?? <DisclosureChevron direction=\"right\" open={open} className=\"size-3.25\" />}\n </span>\n </span>\n );\n};\n\nexport interface ActivityHeadlineProps extends Omit<ComponentProps<typeof ActivityHeader>, 'children'> {\n leading?: ReactNode;\n icon: ReactNode;\n label: ReactNode;\n detail?: string;\n description?: string;\n wrapDetail?: boolean;\n badges?: ReactNode;\n}\n\nexport const ActivityHeadline = ({\n leading,\n icon,\n label,\n detail,\n description,\n wrapDetail,\n badges,\n ...props\n}: ActivityHeadlineProps) => {\n const { status, appearance } = useActivity();\n const hasBadges = Boolean(badges);\n const labelShrinks = Boolean(description) || (appearance === 'inline' && !detail);\n\n return (\n <ActivityHeader {...props}>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>{icon}</ActivityIcon>\n <span className={cn('contents', hasBadges && 'flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1')}>\n <ActivityLabel className={cn(labelShrinks && 'max-w-none min-w-0 shrink')}>\n {description || label}\n </ActivityLabel>\n {badges}\n {!description && detail && (\n <ActivityDetail wrap={wrapDetail} className={cn(hasBadges && 'grow basis-40')}>\n {detail}\n </ActivityDetail>\n )}\n </span>\n <ActivitySpacer className={cn(hasBadges && 'flex-none')} />\n {status === 'error' && (\n <ActivityTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" />\n </ActivityTrailing>\n )}\n <ActivityDisclosure />\n </ActivityHeader>\n );\n};\n\nexport interface ActivityContentProps extends ComponentProps<typeof CollapsibleContent> {\n /** Drop the rail and its indent, so the content lines up with the text around the line. */\n flush?: boolean;\n}\n\nexport const ActivityContent = ({ flush = false, className, children, ...props }: ActivityContentProps) => {\n const inline = useInline();\n\n return (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n 'relative flex max-w-full min-w-0 flex-col py-1.5',\n !flush &&\n \"gap-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n !flush && (inline ? 'ml-2' : 'ml-[14px]'),\n className,\n )}\n >\n <ArrivalScope>{children}</ArrivalScope>\n </div>\n </CollapsibleContent>\n );\n};\n\nexport interface ActivityItemProps extends Omit<ActivityProps, 'children' | 'open' | 'onOpenChange' | 'foldable'> {\n icon: ReactNode;\n label: string;\n detail?: string;\n badges?: ReactNode;\n collapsible?: boolean;\n children?: ReactNode;\n 'aria-label': string;\n}\n\nexport function ActivityItem({\n icon,\n label,\n detail,\n badges,\n collapsible = true,\n children,\n ...props\n}: ActivityItemProps) {\n const folds = collapsible && Boolean(children);\n\n return (\n <Activity {...props} foldable={folds} open={collapsible ? undefined : true}>\n <ActivityTrigger>\n <ActivityHeadline icon={icon} label={label} detail={detail} wrapDetail={!folds} badges={badges} />\n </ActivityTrigger>\n {children && <ActivityContent>{children}</ActivityContent>}\n </Activity>\n );\n}\n\nexport type { ActivityAppearance, ActivityStatus };\n","import { truncateString } from '@/lib/truncate-string';\n\nexport function messagePreview(message: string): string {\n return truncateString(message, 72);\n}\n\nexport function messagePreviewShowsAll(message: string): boolean {\n return !message.includes('\\n') && messagePreview(message) === message;\n}\n","import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n /** Badges rendered after the priority, status and pending badges. */\n extraBadges?: ReactNode;\n /** A label shown above the message once opened, e.g. to flag it as untrusted. */\n messageLabel?: string;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n extraBadges,\n messageLabel,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message) && !messageLabel;\n const hasBadges = Boolean(priority || status || pending || extraBadges);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n {extraBadges}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {messageLabel && (\n <Txt variant=\"caption\" tone=\"muted\">\n {messageLabel}\n </Txt>\n )}\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n","import type { ReasoningContent } from './reasoning-visibility';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\nexport interface ReasoningTextProps {\n content: ReasoningContent;\n className?: string;\n}\n\nexport function ReasoningText({ content: { text, redacted, streaming }, className }: ReasoningTextProps) {\n return (\n <MarkdownRenderer className={className} streaming={streaming && !redacted}>\n {redacted ? 'Reasoning was redacted by the provider.' : text}\n </MarkdownRenderer>\n );\n}\n","export interface ReasoningContent {\n text: string;\n redacted?: boolean;\n streaming?: boolean;\n}\n\nexport function hasVisibleReasoning({ text, redacted, streaming }: ReasoningContent): boolean {\n return Boolean(streaming || redacted) || hasReasoningText({ text, redacted });\n}\n\n/** Whether the passage has something to read: its text, or the notice that it was redacted. */\nexport function hasReasoningText({ text, redacted }: ReasoningContent): boolean {\n return Boolean(redacted) || text.trim().length > 0;\n}\n","import { ActivityItem } from '../activity';\nimport { ReasoningText } from './reasoning-text';\nimport { hasReasoningText, hasVisibleReasoning } from './reasoning-visibility';\nimport type { ReasoningContent } from './reasoning-visibility';\nimport { agentGlyph } from '@/ds/components/AgentIndicator';\n\nconst ThinkingGlyph = agentGlyph('thinking');\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 return (\n <ActivityItem\n icon={<ThinkingGlyph aria-hidden />}\n label=\"Reasoning\"\n status={content.streaming ? 'running' : 'idle'}\n defaultOpen={defaultOpen}\n aria-label=\"Reasoning\"\n >\n {hasReasoningText(content) && (\n <ReasoningText content={content} className=\"text-caption text-muted-foreground [&_p]:my-0.5\" />\n )}\n </ActivityItem>\n );\n}\n","import {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityItem,\n ActivityLabel,\n ActivityTrigger,\n} from '../activity';\nimport type { ActivityAppearance } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { agentGlyph } from '@/ds/components/AgentIndicator';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\nimport { humanize } from '@/lib/string';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n /** `inline` reads like the agent's own lines: their glyph, type and weight, the message as prose. */\n appearance?: ActivityAppearance;\n}\n\nconst signalKinds = {\n state: {\n Icon: agentGlyph('context'),\n accent: 'text-badge-purple-indicator',\n body: { variant: 'caption' },\n },\n reactive: {\n Icon: agentGlyph('notice'),\n accent: undefined,\n body: { variant: 'caption' },\n },\n reminder: {\n Icon: agentGlyph('notice'),\n accent: 'text-info-indicator',\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nfunction SignalLine({ kind, label, message, detail, mode, defaultOpen }: Omit<SignalActivityProps, 'appearance'>) {\n const { Icon } = signalKinds[kind];\n const name = humanize(label);\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <Activity\n appearance=\"inline\"\n foldable={!lineHoldsMessage}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${name}`}\n >\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityIcon className=\"[&_svg]:size-4\">\n <Icon />\n </ActivityIcon>\n <ActivityLabel className=\"text-body font-medium\">{name}</ActivityLabel>\n {mode && <ActivityLabel className=\"-ml-1 text-body before:content-['·_']\">{mode}</ActivityLabel>}\n {detail && <ActivityDetail className=\"text-body-sm\">{detail}</ActivityDetail>}\n {lineHoldsMessage && message && (\n <ActivityLabel wrap className=\"text-body\">\n {message}\n </ActivityLabel>\n )}\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n {!lineHoldsMessage && (\n <ActivityContent>\n <Txt tone=\"muted\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </ActivityContent>\n )}\n </Activity>\n );\n}\n\nexport function SignalActivity({ appearance = 'row', ...signal }: SignalActivityProps) {\n if (appearance === 'inline') return <SignalLine {...signal} />;\n const { kind, label, message, detail, mode, defaultOpen } = signal;\n const { Icon, accent, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={<Icon className={accent} aria-hidden />}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"activity-CcQZeDYi.cjs","names":["createContext","useContext","createContext","useContext","useState","useId","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","DisclosureChevron","X","CollapsibleContent","ArrivalScope","truncateString","Bell","_Fragment","Badge","Txt","ExternalLink","MarkdownRenderer","agentGlyph","agentGlyph","humanize","Txt","Badge","_Fragment"],"sources":["../src/ds/components/ai/activity/use-relative-paths.ts","../src/ds/components/ai/activity/activity.tsx","../src/ds/components/ai/activity/presets/message-preview.ts","../src/ds/components/ai/activity/presets/notification-activity.tsx","../src/ds/components/ai/activity/presets/reasoning-text.tsx","../src/ds/components/ai/activity/presets/reasoning-visibility.ts","../src/ds/components/ai/activity/presets/reasoning-activity.tsx","../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport const WorkingDirectoryContext = createContext<string | undefined>(undefined);\n\nfunction relativeTo(directory: string | undefined, text: string): string {\n const root = directory?.replace(/\\/+$/, '');\n if (!root) return text;\n const escaped = root.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return text.replace(new RegExp(`(?<![^\\\\s'\"=(])${escaped}(?:/(?=[^\\\\s/])|(?![\\\\w.-]))`, 'g'), match =>\n match.endsWith('/') ? '' : '.',\n );\n}\n\n/** Rewrites text the way `ActivityDetail` shows it, for names that must say the same thing. */\nexport function useRelativePaths(): (text: string) => string {\n const directory = useContext(WorkingDirectoryContext);\n return text => relativeTo(directory, text);\n}\n","import { X } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useRelativePaths, WorkingDirectoryContext } from './use-relative-paths';\nimport { ArrivalScope, useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ActivityStatus = 'idle' | 'running' | 'error';\n\n/** `row` sits on a hover surface; `inline` reads as text beside prose: no surface, no inset, the line lifts on hover. */\ntype ActivityAppearance = 'row' | 'inline';\n\ninterface ActivityContextValue {\n open: boolean;\n foldable: boolean;\n status: ActivityStatus;\n appearance: ActivityAppearance;\n nested: boolean;\n toggle: () => void;\n}\n\nconst LIFTS = 'transition-colors motion-reduce:transition-none';\nconst LIFTS_TO_FOREGROUND = `${LIFTS} group-hover/row:text-foreground group-has-focus-visible/row:text-foreground`;\nconst LIFTS_TO_MUTED = `${LIFTS} group-hover/row:text-muted-foreground group-has-focus-visible/row:text-muted-foreground`;\n\nconst ActivityContext = createContext<ActivityContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useActivity() {\n const context = useContext(ActivityContext);\n if (!context) throw new Error('Activity compounds must be rendered within Activity');\n return context;\n}\n\nfunction useInline() {\n return useContext(ActivityContext)?.appearance === 'inline';\n}\n\nexport interface ActivityProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n foldable?: boolean;\n status?: ActivityStatus;\n appearance?: ActivityAppearance;\n}\n\nexport function Activity({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n foldable = true,\n status = 'idle',\n appearance = 'row',\n className,\n children,\n ...props\n}: ActivityProps) {\n const nested = useContext(ActivityContext) !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? (foldable && uncontrolledOpen);\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ActivityContext.Provider\n value={{ open, foldable, status, appearance, nested, toggle: () => handleOpenChange(!open) }}\n >\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n <span id={statusId} className=\"sr-only\" aria-live=\"polite\">\n {status === 'running' && 'Running'}\n {status === 'error' && 'Failed'}\n </span>\n </Collapsible>\n </ActivityContext.Provider>\n );\n}\n\nexport const ActivityTrigger = ({ className, children, ...props }: ComponentProps<'div'>) => {\n const { foldable, appearance } = useActivity();\n const lineId = useId();\n\n return (\n <div\n className={cn(\n 'group/row relative w-full min-w-0 rounded-md transition-colors motion-reduce:transition-none',\n foldable && appearance === 'row' && 'hover:bg-fill',\n className,\n )}\n {...props}\n >\n {foldable && (\n <CollapsibleTrigger\n aria-labelledby={lineId}\n className=\"absolute inset-0 cursor-pointer rounded-md focus-visible:ring-1 focus-visible:ring-border-focus focus-visible:outline-hidden\"\n />\n )}\n <div id={lineId} className={cn(foldable && 'pointer-events-none relative')}>\n {children}\n </div>\n </div>\n );\n};\n\nexport const ActivityHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status, appearance } = useActivity();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn(\n 'flex min-w-0 items-center gap-2 py-1',\n appearance === 'inline' ? 'w-fit max-w-full' : 'w-full px-1.5',\n className,\n )}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ActivityLeading = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { foldable, toggle } = useActivity();\n\n if (!children) return null;\n\n return (\n <span\n className={cn('pointer-events-auto flex shrink-0 empty:hidden', foldable && 'cursor-pointer', className)}\n onClick={foldable ? toggle : undefined}\n {...props}\n >\n {children}\n </span>\n );\n};\n\nexport const ActivityIcon = ({ className, ...props }: ComponentProps<'span'>) => {\n const { status, appearance } = useActivity();\n\n return (\n <span\n className={cn(\n 'flex size-4 shrink-0 items-center justify-center [&_svg]:size-3.5 [&_svg]:shrink-0',\n status === 'error' ? 'text-destructive-foreground' : 'text-placeholder',\n status !== 'error' && appearance === 'inline' && LIFTS_TO_MUTED,\n className,\n )}\n {...props}\n />\n );\n};\n\nexport interface ActivityLabelProps extends ComponentProps<typeof Txt> {\n wrap?: boolean;\n}\n\nexport const ActivityLabel = ({ wrap = false, className, ...props }: ActivityLabelProps) => {\n const inline = useInline();\n\n return (\n <Txt\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn(\n wrap ? 'min-w-0 break-words' : 'shrink-0 truncate',\n inline ? `max-w-none ${LIFTS_TO_FOREGROUND}` : 'max-w-[55%]',\n className,\n )}\n {...props}\n />\n );\n};\n\n/** Paths under the agent's working directory read relative to it, the way the agent itself refers to them. */\nexport function ActivityWorkingDirectory({ path, children }: { path: string | undefined; children: ReactNode }) {\n return <WorkingDirectoryContext value={path}>{children}</WorkingDirectoryContext>;\n}\n\nexport interface ActivityDetailProps extends Omit<ComponentProps<typeof Txt>, 'font'> {\n wrap?: boolean;\n}\n\nexport const ActivityDetail = ({ wrap = false, className, children, ...props }: ActivityDetailProps) => {\n const arriving = useArriving();\n const inline = useInline();\n const relative = useRelativePaths();\n\n return (\n <Txt\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn('min-w-0', wrap ? 'break-words' : 'truncate', inline && LIFTS_TO_FOREGROUND, arriving, className)}\n {...props}\n >\n {typeof children === 'string' ? relative(children) : children}\n </Txt>\n );\n};\n\nexport const ActivitySummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ActivitySpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ActivitySpacer = ({ rule, className, ...props }: ActivitySpacerProps) => {\n const inline = useInline();\n\n return (\n <span\n aria-hidden\n className={cn(\n 'min-w-2 flex-1',\n rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]',\n inline && !rule && 'hidden',\n className,\n )}\n {...props}\n />\n );\n};\n\nexport const ActivityTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ActivityDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open, foldable, nested } = useActivity();\n\n return (\n <span\n className={cn(\n 'flex size-4 shrink-0 items-center justify-center transition-opacity duration-150 motion-reduce:transition-none starting:opacity-0',\n !foldable && 'hidden',\n foldable && nested && 'hidden group-hover/row:flex group-has-focus-visible/row:flex',\n className,\n )}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground/60 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:text-muted-foreground group-has-focus-visible/row:text-muted-foreground',\n open && 'text-muted-foreground',\n open && children != null && 'rotate-90',\n )}\n >\n {children ?? <DisclosureChevron direction=\"right\" open={open} className=\"size-3.25\" />}\n </span>\n </span>\n );\n};\n\nexport interface ActivityHeadlineProps extends Omit<ComponentProps<typeof ActivityHeader>, 'children'> {\n leading?: ReactNode;\n icon: ReactNode;\n label: ReactNode;\n detail?: string;\n description?: string;\n wrapDetail?: boolean;\n badges?: ReactNode;\n}\n\nexport const ActivityHeadline = ({\n leading,\n icon,\n label,\n detail,\n description,\n wrapDetail,\n badges,\n ...props\n}: ActivityHeadlineProps) => {\n const { status, appearance } = useActivity();\n const hasBadges = Boolean(badges);\n const labelShrinks = Boolean(description) || (appearance === 'inline' && !detail);\n\n return (\n <ActivityHeader {...props}>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>{icon}</ActivityIcon>\n <span className={cn('contents', hasBadges && 'flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1')}>\n <ActivityLabel className={cn(labelShrinks && 'max-w-none min-w-0 shrink')}>\n {description || label}\n </ActivityLabel>\n {badges}\n {!description && detail && (\n <ActivityDetail wrap={wrapDetail} className={cn(hasBadges && 'grow basis-40')}>\n {detail}\n </ActivityDetail>\n )}\n </span>\n <ActivitySpacer className={cn(hasBadges && 'flex-none')} />\n {status === 'error' && (\n <ActivityTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" />\n </ActivityTrailing>\n )}\n <ActivityDisclosure />\n </ActivityHeader>\n );\n};\n\nexport interface ActivityContentProps extends ComponentProps<typeof CollapsibleContent> {\n /** Drop the rail and its indent, so the content lines up with the text around the line. */\n flush?: boolean;\n}\n\nexport const ActivityContent = ({ flush = false, className, children, ...props }: ActivityContentProps) => {\n const inline = useInline();\n\n return (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n 'relative flex max-w-full min-w-0 flex-col py-1.5',\n !flush &&\n \"gap-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n !flush && (inline ? 'ml-2' : 'ml-[14px]'),\n className,\n )}\n >\n <ArrivalScope>{children}</ArrivalScope>\n </div>\n </CollapsibleContent>\n );\n};\n\nexport interface ActivityItemProps extends Omit<ActivityProps, 'children' | 'open' | 'onOpenChange' | 'foldable'> {\n icon: ReactNode;\n label: string;\n detail?: string;\n badges?: ReactNode;\n collapsible?: boolean;\n children?: ReactNode;\n 'aria-label': string;\n}\n\nexport function ActivityItem({\n icon,\n label,\n detail,\n badges,\n collapsible = true,\n children,\n ...props\n}: ActivityItemProps) {\n const folds = collapsible && Boolean(children);\n\n return (\n <Activity {...props} foldable={folds} open={collapsible ? undefined : true}>\n <ActivityTrigger>\n <ActivityHeadline icon={icon} label={label} detail={detail} wrapDetail={!folds} badges={badges} />\n </ActivityTrigger>\n {children && <ActivityContent>{children}</ActivityContent>}\n </Activity>\n );\n}\n\nexport type { ActivityAppearance, ActivityStatus };\n","import { truncateString } from '@/lib/truncate-string';\n\nexport function messagePreview(message: string): string {\n return truncateString(message, 72);\n}\n\nexport function messagePreviewShowsAll(message: string): boolean {\n return !message.includes('\\n') && messagePreview(message) === message;\n}\n","import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n /** Badges rendered after the priority, status and pending badges. */\n extraBadges?: ReactNode;\n /** A label shown above the message once opened, e.g. to flag it as untrusted. */\n messageLabel?: string;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n extraBadges,\n messageLabel,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message) && !messageLabel;\n const hasBadges = Boolean(priority || status || pending || extraBadges);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n {extraBadges}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {messageLabel && (\n <Txt variant=\"caption\" tone=\"muted\">\n {messageLabel}\n </Txt>\n )}\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n","import type { ReasoningContent } from './reasoning-visibility';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\nexport interface ReasoningTextProps {\n content: ReasoningContent;\n className?: string;\n}\n\nexport function ReasoningText({ content: { text, redacted, streaming }, className }: ReasoningTextProps) {\n return (\n <MarkdownRenderer className={className} streaming={streaming && !redacted}>\n {redacted ? 'Reasoning was redacted by the provider.' : text}\n </MarkdownRenderer>\n );\n}\n","export interface ReasoningContent {\n text: string;\n redacted?: boolean;\n streaming?: boolean;\n}\n\nexport function hasVisibleReasoning({ text, redacted, streaming }: ReasoningContent): boolean {\n return Boolean(streaming || redacted) || hasReasoningText({ text, redacted });\n}\n\n/** Whether the passage has something to read: its text, or the notice that it was redacted. */\nexport function hasReasoningText({ text, redacted }: ReasoningContent): boolean {\n return Boolean(redacted) || text.trim().length > 0;\n}\n","import { ActivityItem } from '../activity';\nimport { ReasoningText } from './reasoning-text';\nimport { hasReasoningText, hasVisibleReasoning } from './reasoning-visibility';\nimport type { ReasoningContent } from './reasoning-visibility';\nimport { agentGlyph } from '@/ds/components/AgentIndicator';\n\nconst ThinkingGlyph = agentGlyph('thinking');\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 return (\n <ActivityItem\n icon={<ThinkingGlyph aria-hidden />}\n label=\"Reasoning\"\n status={content.streaming ? 'running' : 'idle'}\n defaultOpen={defaultOpen}\n aria-label=\"Reasoning\"\n >\n {hasReasoningText(content) && (\n <ReasoningText content={content} className=\"text-caption text-muted-foreground [&_p]:my-0.5\" />\n )}\n </ActivityItem>\n );\n}\n","import {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityItem,\n ActivityLabel,\n ActivityTrigger,\n} from '../activity';\nimport type { ActivityAppearance } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { agentGlyph } from '@/ds/components/AgentIndicator';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\nimport { humanize } from '@/lib/string';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n /** `inline` reads like the agent's own lines: their glyph, type and weight, the message as prose. */\n appearance?: ActivityAppearance;\n}\n\nconst signalKinds = {\n state: {\n Icon: agentGlyph('context'),\n accent: 'text-badge-purple-indicator',\n body: { variant: 'caption' },\n },\n reactive: {\n Icon: agentGlyph('notice'),\n accent: undefined,\n body: { variant: 'caption' },\n },\n reminder: {\n Icon: agentGlyph('notice'),\n accent: 'text-info-indicator',\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nfunction SignalLine({ kind, label, message, detail, mode, defaultOpen }: Omit<SignalActivityProps, 'appearance'>) {\n const { Icon } = signalKinds[kind];\n const name = humanize(label);\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <Activity\n appearance=\"inline\"\n foldable={!lineHoldsMessage}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${name}`}\n >\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityIcon className=\"[&_svg]:size-4\">\n <Icon />\n </ActivityIcon>\n <ActivityLabel className=\"text-body font-medium\">{name}</ActivityLabel>\n {mode && <ActivityLabel className=\"-ml-1 text-body before:content-['·_']\">{mode}</ActivityLabel>}\n {detail && <ActivityDetail className=\"text-body-sm\">{detail}</ActivityDetail>}\n {lineHoldsMessage && message && (\n <ActivityLabel wrap className=\"text-body\">\n {message}\n </ActivityLabel>\n )}\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n {!lineHoldsMessage && (\n <ActivityContent>\n <Txt tone=\"muted\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </ActivityContent>\n )}\n </Activity>\n );\n}\n\nexport function SignalActivity({ appearance = 'row', ...signal }: SignalActivityProps) {\n if (appearance === 'inline') return <SignalLine {...signal} />;\n const { kind, label, message, detail, mode, defaultOpen } = signal;\n const { Icon, accent, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={<Icon className={accent} aria-hidden />}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_MarkdownRenderer = require("../MarkdownRenderer-
|
|
2
|
+
const require_MarkdownRenderer = require("../MarkdownRenderer-y65WGBhC.cjs");
|
|
3
3
|
const require_use_reveal = require("../use-reveal-DrxyKxtC.cjs");
|
|
4
4
|
exports.MarkdownRenderer = require_MarkdownRenderer.MarkdownRenderer;
|
|
5
5
|
exports.useRevealedText = require_use_reveal.useRevealedText;
|
|
@@ -8,9 +8,9 @@ const require_Txt = require("../Txt-BnoSqxKE.cjs");
|
|
|
8
8
|
const require_primitives_password_manager_autofill = require("../primitives/password-manager-autofill.cjs.js");
|
|
9
9
|
const require_dropdown_menu = require("../dropdown-menu-BETTTPBB.cjs");
|
|
10
10
|
const require_context_menu = require("../context-menu-DTFPCyae.cjs");
|
|
11
|
+
const require_components_HoverCard = require("./HoverCard.cjs.js");
|
|
11
12
|
const require_saved_view_schema = require("../saved-view-schema-DRJYELfK.cjs");
|
|
12
13
|
const require_filter_bar_chip = require("../filter-bar-chip-Cg-UbIwP.cjs");
|
|
13
|
-
const require_components_HoverCard = require("./HoverCard.cjs.js");
|
|
14
14
|
let react = require("react");
|
|
15
15
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
16
16
|
let lucide_react = require("lucide-react");
|
|
@@ -7,9 +7,9 @@ import { t as Txt } from "../Txt-BM6TVV_c.js";
|
|
|
7
7
|
import { passwordManagerOptOutProps } from "../primitives/password-manager-autofill.es.js";
|
|
8
8
|
import { t as DropdownMenu } from "../dropdown-menu-B4jY3J9e.js";
|
|
9
9
|
import { t as ContextMenu } from "../context-menu-Dv0NU0oM.js";
|
|
10
|
+
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./HoverCard.es.js";
|
|
10
11
|
import { n as savedViewNameSchema, r as serializeSavedViews, t as parseSavedViews } from "../saved-view-schema-eJXlRRel.js";
|
|
11
12
|
import { o as FilterBarFieldLabel, u as formatValue } from "../filter-bar-chip-CABeKrtf.js";
|
|
12
|
-
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./HoverCard.es.js";
|
|
13
13
|
import { VisuallyHidden } from "../primitives/visually-hidden.es.js";
|
|
14
14
|
import { Fragment, useRef, useState, useSyncExternalStore } from "react";
|
|
15
15
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_activity = require("../../activity-
|
|
2
|
+
const require_activity = require("../../activity-CcQZeDYi.cjs");
|
|
3
3
|
exports.Activity = require_activity.Activity;
|
|
4
4
|
exports.ActivityContent = require_activity.ActivityContent;
|
|
5
5
|
exports.ActivityDetail = require_activity.ActivityDetail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { s as Activity, c as ActivityContent, l as ActivityDetail, u as ActivityDisclosure, d as ActivityHeader, f as ActivityHeadline, p as ActivityIcon, m as ActivityItem, h as ActivityLabel, g as ActivityLeading, _ as ActivitySpacer, v as ActivitySummary, y as ActivityTrailing, b as ActivityTrigger, x as ActivityWorkingDirectory, o as NotificationActivity, n as ReasoningActivity, a as ReasoningText, t as SignalActivity, r as hasReasoningText, i as hasVisibleReasoning, S as useRelativePaths } from "../../activity-
|
|
1
|
+
export { s as Activity, c as ActivityContent, l as ActivityDetail, u as ActivityDisclosure, d as ActivityHeader, f as ActivityHeadline, p as ActivityIcon, m as ActivityItem, h as ActivityLabel, g as ActivityLeading, _ as ActivitySpacer, v as ActivitySummary, y as ActivityTrailing, b as ActivityTrigger, x as ActivityWorkingDirectory, o as NotificationActivity, n as ReasoningActivity, a as ReasoningText, t as SignalActivity, r as hasReasoningText, i as hasVisibleReasoning, S as useRelativePaths } from "../../activity-C8Ql81WM.js";
|
|
@@ -5,7 +5,7 @@ const require_Button = require("../../Button-DLcMcuUL.cjs");
|
|
|
5
5
|
const require_Txt = require("../../Txt-BnoSqxKE.cjs");
|
|
6
6
|
const require_hooks_use_copy_to_clipboard = require("../../hooks/use-copy-to-clipboard.cjs.js");
|
|
7
7
|
const require_Badge = require("../../Badge-DZ6r6bcw.cjs");
|
|
8
|
-
const require_MarkdownRenderer = require("../../MarkdownRenderer-
|
|
8
|
+
const require_MarkdownRenderer = require("../../MarkdownRenderer-y65WGBhC.cjs");
|
|
9
9
|
const require_components_CollapsibleBox = require("../CollapsibleBox.cjs.js");
|
|
10
10
|
let react = require("react");
|
|
11
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -4,7 +4,7 @@ import { t as Button } from "../../Button-CLXTbAY8.js";
|
|
|
4
4
|
import { t as Txt } from "../../Txt-BM6TVV_c.js";
|
|
5
5
|
import { useCopyToClipboard } from "../../hooks/use-copy-to-clipboard.es.js";
|
|
6
6
|
import { t as Badge } from "../../Badge-aVu5iGAF.js";
|
|
7
|
-
import { t as MarkdownRenderer } from "../../MarkdownRenderer-
|
|
7
|
+
import { t as MarkdownRenderer } from "../../MarkdownRenderer-CI30RqdB.js";
|
|
8
8
|
import { CollapsibleBox, useCollapsibleBox } from "../CollapsibleBox.es.js";
|
|
9
9
|
import { createContext, useContext } from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_approval = require("../../tool-approval-
|
|
2
|
+
const require_tool_approval = require("../../tool-approval-CJvPDL7D.cjs");
|
|
3
3
|
exports.ToolApproval = require_tool_approval.ToolApproval;
|
|
4
4
|
exports.ToolApprovalActions = require_tool_approval.ToolApprovalActions;
|
|
5
5
|
exports.ToolApprovalStatus = require_tool_approval.ToolApprovalStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ToolApproval, n as ToolApprovalActions, r as ToolApprovalStatus } from "../../tool-approval-
|
|
1
|
+
export { t as ToolApproval, n as ToolApprovalActions, r as ToolApprovalStatus } from "../../tool-approval-DyN11vFA.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_call = require("../../tool-call-
|
|
3
|
-
const require_tool_presentation = require("../../tool-presentation-
|
|
2
|
+
const require_tool_call = require("../../tool-call-DBn14X-3.cjs");
|
|
3
|
+
const require_tool_presentation = require("../../tool-presentation-D6nzVruN.cjs");
|
|
4
4
|
exports.TOOL_GROUP_MIN = require_tool_call.TOOL_GROUP_MIN;
|
|
5
5
|
exports.ToolCallArguments = require_tool_call.ToolCallArguments;
|
|
6
6
|
exports.ToolCallCommand = require_tool_call.ToolCallCommand;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as ToolCallArguments, c as ToolCallMono, d as stripAnsi, f as stripSerializedAnsi, i as ToolCallGroup, l as TOOL_GROUP_MIN, n as toolPhrases, o as ToolCallEdit, r as ToolCallOutput, s as ToolCallCommand, t as ToolCallTime, u as groupConsecutive } from "../../tool-call-
|
|
2
|
-
import { a as toolEdit, i as stringifyToolValue, n as isTaskTool, o as visibleToolArgumentsText, r as presentTool, t as hasToolArguments } from "../../tool-presentation-
|
|
1
|
+
import { a as ToolCallArguments, c as ToolCallMono, d as stripAnsi, f as stripSerializedAnsi, i as ToolCallGroup, l as TOOL_GROUP_MIN, n as toolPhrases, o as ToolCallEdit, r as ToolCallOutput, s as ToolCallCommand, t as ToolCallTime, u as groupConsecutive } from "../../tool-call-Dsj43lvJ.js";
|
|
2
|
+
import { a as toolEdit, i as stringifyToolValue, n as isTaskTool, o as visibleToolArgumentsText, r as presentTool, t as hasToolArguments } from "../../tool-presentation-CvibOP1J.js";
|
|
3
3
|
export { TOOL_GROUP_MIN, ToolCallArguments, ToolCallCommand, ToolCallEdit, ToolCallGroup, ToolCallMono, ToolCallOutput, ToolCallTime, groupConsecutive, hasToolArguments, isTaskTool, presentTool, stringifyToolValue, stripAnsi, stripSerializedAnsi, toolEdit, toolPhrases, visibleToolArgumentsText };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_domains_chat_activity_use_activity_disclosure = require("./use-activity-disclosure.cjs.js");
|
|
3
|
-
const require_activity = require("../../../activity-
|
|
3
|
+
const require_activity = require("../../../activity-CcQZeDYi.cjs");
|
|
4
4
|
const require_domains_chat_activity_components_activity_fold = require("./components/activity-fold.cjs.js");
|
|
5
5
|
const require_domains_chat_activity_components_stretch_content = require("./components/stretch-content.cjs.js");
|
|
6
6
|
const require_domains_chat_activity_model_activity_segments = require("./model/activity-segments.cjs.js");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ActivityDisclosureContext, useDisclosureStore, useIsOpen } from "./use-activity-disclosure.es.js";
|
|
2
|
-
import { r as hasReasoningText } from "../../../activity-
|
|
2
|
+
import { r as hasReasoningText } from "../../../activity-C8Ql81WM.js";
|
|
3
3
|
import { ActivityFold } from "./components/activity-fold.es.js";
|
|
4
4
|
import { StretchContent } from "./components/stretch-content.es.js";
|
|
5
5
|
import { activitySegments } from "./model/activity-segments.es.js";
|
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_utils = require("../../../../utils-uDc1ofX1.cjs");
|
|
3
3
|
const require_Txt = require("../../../../Txt-BnoSqxKE.cjs");
|
|
4
4
|
const require_AgentIndicator = require("../../../../AgentIndicator-to30W73z.cjs");
|
|
5
|
-
const require_activity = require("../../../../activity-
|
|
5
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
6
6
|
const require_Arrival = require("../../../../Arrival-Cs1oWjo4.cjs");
|
|
7
7
|
const require_components_Shimmer = require("../../../../components/Shimmer.cjs.js");
|
|
8
8
|
const require_domains_chat_activity_model_activity_words = require("../model/activity-words.cjs.js");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cn } from "../../../../utils-DQx8TpNT.js";
|
|
2
2
|
import { t as Txt } from "../../../../Txt-BM6TVV_c.js";
|
|
3
3
|
import { n as AgentIndicator, t as agentGlyph } from "../../../../AgentIndicator-Bs2S8AWJ.js";
|
|
4
|
-
import { S as useRelativePaths, d as ActivityHeader, h as ActivityLabel, l as ActivityDetail, p as ActivityIcon$1, s as Activity, u as ActivityDisclosure } from "../../../../activity-
|
|
4
|
+
import { S as useRelativePaths, d as ActivityHeader, h as ActivityLabel, l as ActivityDetail, p as ActivityIcon$1, s as Activity, u as ActivityDisclosure } from "../../../../activity-C8Ql81WM.js";
|
|
5
5
|
import { i as Unwatched } from "../../../../Arrival-CJFEOXr5.js";
|
|
6
6
|
import { Shimmer } from "../../../../components/Shimmer.es.js";
|
|
7
7
|
import { callsOutcome, liveWords, outcomeText, settledWords, stretchPose, wordsName } from "../model/activity-words.es.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils_date_format = require("../../../../utils/date-format.cjs.js");
|
|
3
3
|
const require_tooltip = require("../../../../tooltip-BiRLT3Th.cjs");
|
|
4
|
-
const require_activity = require("../../../../activity-
|
|
4
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
5
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
// src/domains/chat/activity/components/activity-timed-trigger.tsx
|
|
7
7
|
/** A line's trigger that names when its work began, on hover and to screen readers. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { formatMoment, toDate } from "../../../../utils/date-format.es.js";
|
|
2
2
|
import { i as TooltipTrigger, n as TooltipContent, t as Tooltip } from "../../../../tooltip-HzcLyGtV.js";
|
|
3
|
-
import { b as ActivityTrigger } from "../../../../activity-
|
|
3
|
+
import { b as ActivityTrigger } from "../../../../activity-C8Ql81WM.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
// src/domains/chat/activity/components/activity-timed-trigger.tsx
|
|
6
6
|
/** A line's trigger that names when its work began, on hover and to screen readers. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_scroll_area = require("../../../../scroll-area-BP4gPZ4G.cjs");
|
|
3
3
|
const require_domains_chat_activity_use_activity_disclosure = require("../use-activity-disclosure.cjs.js");
|
|
4
|
-
const require_activity = require("../../../../activity-
|
|
4
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
5
5
|
const require_domains_chat_activity_components_reading_row = require("./reading-row.cjs.js");
|
|
6
6
|
let react = require("react");
|
|
7
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as ScrollAreaViewport, t as ScrollArea } from "../../../../scroll-area-C226l0v0.js";
|
|
2
2
|
import { useDisclosureStore } from "../use-activity-disclosure.es.js";
|
|
3
|
-
import { c as ActivityContent } from "../../../../activity-
|
|
3
|
+
import { c as ActivityContent } from "../../../../activity-C8Ql81WM.js";
|
|
4
4
|
import { keepFollowing, keepReadingRow, listRow } from "./reading-row.es.js";
|
|
5
5
|
import { useState } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_activity = require("../../../../activity-
|
|
2
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
3
3
|
const require_domains_chat_activity_components_calls_panel = require("./calls-panel.cjs.js");
|
|
4
4
|
const require_domains_chat_activity_components_stretch_thought = require("./stretch-thought.cjs.js");
|
|
5
5
|
const require_domains_chat_activity_components_stretch_segment = require("./stretch-segment.cjs.js");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as ActivityContent } from "../../../../activity-
|
|
1
|
+
import { c as ActivityContent } from "../../../../activity-C8Ql81WM.js";
|
|
2
2
|
import { CallsPanel } from "./calls-panel.es.js";
|
|
3
3
|
import { StretchThought } from "./stretch-thought.es.js";
|
|
4
4
|
import { StretchSegment } from "./stretch-segment.es.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_activity = require("../../../../activity-
|
|
2
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
3
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
4
|
// src/domains/chat/activity/components/stretch-thought.tsx
|
|
5
5
|
/** A thought in an open stretch, read like the answer around it. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ReasoningText } from "../../../../activity-
|
|
1
|
+
import { a as ReasoningText } from "../../../../activity-C8Ql81WM.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
// src/domains/chat/activity/components/stretch-thought.tsx
|
|
4
4
|
/** A thought in an open stretch, read like the answer around it. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_call = require("../../../../tool-call-
|
|
2
|
+
const require_tool_call = require("../../../../tool-call-DBn14X-3.cjs");
|
|
3
3
|
// src/domains/chat/activity/model/activity-segments.ts
|
|
4
4
|
function activitySegments(members) {
|
|
5
5
|
const groups = require_tool_call.groupConsecutive(members, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as groupConsecutive } from "../../../../tool-call-
|
|
1
|
+
import { u as groupConsecutive } from "../../../../tool-call-Dsj43lvJ.js";
|
|
2
2
|
// src/domains/chat/activity/model/activity-segments.ts
|
|
3
3
|
function activitySegments(members) {
|
|
4
4
|
const groups = groupConsecutive(members, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils_duration = require("../../../../utils/duration.cjs.js");
|
|
3
3
|
const require_AgentIndicator = require("../../../../AgentIndicator-to30W73z.cjs");
|
|
4
|
-
const require_tool_call = require("../../../../tool-call-
|
|
5
|
-
const require_tool_presentation = require("../../../../tool-presentation-
|
|
4
|
+
const require_tool_call = require("../../../../tool-call-DBn14X-3.cjs");
|
|
5
|
+
const require_tool_presentation = require("../../../../tool-presentation-D6nzVruN.cjs");
|
|
6
6
|
// src/domains/chat/activity/model/activity-words.ts
|
|
7
7
|
var SUMMARY_KINDS = 3;
|
|
8
8
|
function secondsDuration(elapsedMs) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { formatDuration } from "../../../../utils/duration.es.js";
|
|
2
2
|
import { t as agentGlyph } from "../../../../AgentIndicator-Bs2S8AWJ.js";
|
|
3
|
-
import { n as toolPhrases } from "../../../../tool-call-
|
|
4
|
-
import { r as presentTool } from "../../../../tool-presentation-
|
|
3
|
+
import { n as toolPhrases } from "../../../../tool-call-Dsj43lvJ.js";
|
|
4
|
+
import { r as presentTool } from "../../../../tool-presentation-CvibOP1J.js";
|
|
5
5
|
// src/domains/chat/activity/model/activity-words.ts
|
|
6
6
|
var SUMMARY_KINDS = 3;
|
|
7
7
|
function secondsDuration(elapsedMs) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils = require("../../../utils-uDc1ofX1.cjs");
|
|
3
|
-
const require_activity = require("../../../activity-
|
|
3
|
+
const require_activity = require("../../../activity-CcQZeDYi.cjs");
|
|
4
4
|
const require_domains_chat_context_chat_context = require("../context/chat-context.cjs.js");
|
|
5
5
|
let react = require("react");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cn } from "../../../utils-DQx8TpNT.js";
|
|
2
|
-
import { b as ActivityTrigger, c as ActivityContent, f as ActivityHeadline, s as Activity, y as ActivityTrailing } from "../../../activity-
|
|
2
|
+
import { b as ActivityTrigger, c as ActivityContent, f as ActivityHeadline, s as Activity, y as ActivityTrailing } from "../../../activity-C8Ql81WM.js";
|
|
3
3
|
import { useChatRunning } from "../context/chat-context.es.js";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,40 +1,86 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_lib_framework = require("../../../lib/framework.cjs.js");
|
|
3
3
|
const require_domains_chat_knowledge_pinned_knowledge_data = require("./pinned-knowledge-data.cjs.js");
|
|
4
|
+
const require_domains_knowledge_components_KnowledgePageCard = require("../../knowledge/components/KnowledgePageCard.cjs.js");
|
|
5
|
+
const require_components_HoverCard = require("../../../components/HoverCard.cjs.js");
|
|
4
6
|
let react = require("react");
|
|
5
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
8
|
// src/domains/chat/knowledge/knowledge-links.tsx
|
|
7
|
-
var KnowledgeLinksContext = (0, react.createContext)({
|
|
9
|
+
var KnowledgeLinksContext = (0, react.createContext)({
|
|
10
|
+
pageHref: require_domains_chat_knowledge_pinned_knowledge_data.knowledgePageHref,
|
|
11
|
+
refHref: require_domains_chat_knowledge_pinned_knowledge_data.knowledgePageHref
|
|
12
|
+
});
|
|
8
13
|
/**
|
|
9
14
|
* Where Knowledge page links in chat (tool cards, pinned Knowledge) point. Studio's default opens its own
|
|
10
15
|
* Knowledge page; a host with its own route (Factory's per-project page) or its own router passes both.
|
|
11
16
|
*/
|
|
12
|
-
function KnowledgeLinksProvider({ pageHref, Link, children }) {
|
|
17
|
+
function KnowledgeLinksProvider({ pageHref, refHref, Link, usePagePreview, children }) {
|
|
13
18
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeLinksContext.Provider, {
|
|
14
19
|
value: {
|
|
15
20
|
pageHref,
|
|
16
|
-
|
|
21
|
+
refHref,
|
|
22
|
+
Link,
|
|
23
|
+
usePagePreview,
|
|
24
|
+
provided: true
|
|
17
25
|
},
|
|
18
26
|
children
|
|
19
27
|
});
|
|
20
28
|
}
|
|
29
|
+
/** What the host gave the provider; for renderers that must decide before drawing a link. */
|
|
30
|
+
function useKnowledgeLinksContext() {
|
|
31
|
+
return (0, react.useContext)(KnowledgeLinksContext);
|
|
32
|
+
}
|
|
33
|
+
/** Whether this host mounted a `KnowledgeLinksProvider`, i.e. has Knowledge pages chat prose can link to. */
|
|
34
|
+
function useHasKnowledgeLinks() {
|
|
35
|
+
return (0, react.useContext)(KnowledgeLinksContext).provided === true;
|
|
36
|
+
}
|
|
37
|
+
var LINK_CLASS = "min-w-0 truncate text-foreground underline-offset-2 hover:underline";
|
|
38
|
+
/** Mounted only while the card is open, so the host's lookup runs on hover. Nothing opens until the page is known. */
|
|
39
|
+
function PagePreviewContent({ target, usePagePreview }) {
|
|
40
|
+
const card = usePagePreview(target);
|
|
41
|
+
if (!card) return null;
|
|
42
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_HoverCard.HoverCardContent, {
|
|
43
|
+
"data-testid": "knowledge-link-card",
|
|
44
|
+
className: "flex w-max max-w-72 flex-col px-2 py-1",
|
|
45
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_knowledge_components_KnowledgePageCard.KnowledgePageCard, { ...card })
|
|
46
|
+
});
|
|
47
|
+
}
|
|
21
48
|
/** A link to a Knowledge page, through the host's link component and route. */
|
|
22
|
-
function KnowledgePageLink({ pageId, children, className =
|
|
49
|
+
function KnowledgePageLink({ pageId, pageRef, children, className = LINK_CLASS }) {
|
|
23
50
|
const links = (0, react.useContext)(KnowledgeLinksContext);
|
|
51
|
+
const [open, setOpen] = (0, react.useState)(false);
|
|
24
52
|
const { Link: FrameworkLink } = require_lib_framework.useLinkComponent();
|
|
25
53
|
const Link = links.Link ?? FrameworkLink;
|
|
26
|
-
const href = links.pageHref(pageId);
|
|
54
|
+
const href = pageId !== void 0 ? links.pageHref(pageId) : links.refHref?.(pageRef);
|
|
27
55
|
if (!href) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
28
56
|
className,
|
|
29
57
|
children
|
|
30
58
|
});
|
|
31
|
-
|
|
59
|
+
const link = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Link, {
|
|
32
60
|
href,
|
|
33
61
|
className,
|
|
34
62
|
children
|
|
35
63
|
});
|
|
64
|
+
const { usePagePreview } = links;
|
|
65
|
+
if (!usePagePreview) return link;
|
|
66
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_components_HoverCard.HoverCard, {
|
|
67
|
+
open,
|
|
68
|
+
onOpenChange: setOpen,
|
|
69
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_HoverCard.HoverCardTrigger, {
|
|
70
|
+
render: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Link, {
|
|
71
|
+
href,
|
|
72
|
+
className
|
|
73
|
+
}),
|
|
74
|
+
children
|
|
75
|
+
}), open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PagePreviewContent, {
|
|
76
|
+
target: pageId !== void 0 ? { pageId } : { pageRef },
|
|
77
|
+
usePagePreview
|
|
78
|
+
}) : null]
|
|
79
|
+
});
|
|
36
80
|
}
|
|
37
81
|
exports.KnowledgeLinksProvider = KnowledgeLinksProvider;
|
|
38
82
|
exports.KnowledgePageLink = KnowledgePageLink;
|
|
83
|
+
exports.useHasKnowledgeLinks = useHasKnowledgeLinks;
|
|
84
|
+
exports.useKnowledgeLinksContext = useKnowledgeLinksContext;
|
|
39
85
|
|
|
40
86
|
//# sourceMappingURL=knowledge-links.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-links.cjs.js","names":["createContext","knowledgePageHref","useContext","useLinkComponent"],"sources":["../../../../src/domains/chat/knowledge/knowledge-links.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { ReactNode } from 'react';\nimport { knowledgePageHref } from './pinned-knowledge-data';\nimport { useLinkComponent } from '@/lib/framework';\nimport type { LinkComponent } from '@/lib/framework';\n\ninterface KnowledgeLinks {\n /** Undefined when this host has no page to open, e.g. a chat outside any project; the name shows as text. */\n pageHref: (pageId: string) => string | undefined;\n Link?: LinkComponent;\n}\n\nconst KnowledgeLinksContext = createContext<KnowledgeLinks>({
|
|
1
|
+
{"version":3,"file":"knowledge-links.cjs.js","names":["createContext","knowledgePageHref","useContext","HoverCardContent","KnowledgePageCard","useState","useLinkComponent","HoverCard","HoverCardTrigger"],"sources":["../../../../src/domains/chat/knowledge/knowledge-links.tsx"],"sourcesContent":["import { createContext, useContext, useState } from 'react';\nimport type { ReactNode } from 'react';\nimport { knowledgePageHref } from './pinned-knowledge-data';\nimport { KnowledgePageCard } from '@/domains/knowledge/components/KnowledgePageCard';\nimport type { KnowledgePageCardProps } from '@/domains/knowledge/components/KnowledgePageCard';\nimport { HoverCard, HoverCardContent, HoverCardTrigger } from '@/ds/components/HoverCard';\nimport { useLinkComponent } from '@/lib/framework';\nimport type { LinkComponent } from '@/lib/framework';\n\n/** Names the page a link points at: by id, or by reference the way `refHref` takes it. */\nexport type KnowledgePageTarget = { pageId: string; pageRef?: never } | { pageRef: string; pageId?: never };\n\n/**\n * What a hover card says about a page. Called, as a hook, only while a card is open, so a host fetches\n * the page on hover and not for every link in the transcript. (Chat prose is the exception: a bare address\n * in text calls it on render, since it links only if the page resolves.) `undefined` while loading or unreadable.\n */\nexport type UseKnowledgePagePreview = (target: KnowledgePageTarget) => KnowledgePageCardProps | undefined;\n\ninterface KnowledgeLinks {\n /** Left out where the host cannot look a page up; links then have no hover card. */\n usePagePreview?: UseKnowledgePagePreview;\n /** Undefined when this host has no page to open, e.g. a chat outside any project; the name shows as text. */\n pageHref: (pageId: string) => string | undefined;\n /**\n * Where a page named by reference (a scope address, or `scope#key/path` as `knowledge_list` names\n * entries) opens. Studio's Knowledge page resolves the reference itself, so it uses the page URL. A\n * host that only opens pages by id leaves it out, and those names show as text.\n */\n refHref?: (ref: string) => string | undefined;\n Link?: LinkComponent;\n /** Set by the provider: this host has Knowledge pages, so references in chat prose become links. */\n provided?: boolean;\n}\n\nconst KnowledgeLinksContext = createContext<KnowledgeLinks>({\n pageHref: knowledgePageHref,\n refHref: knowledgePageHref,\n});\n\n/**\n * Where Knowledge page links in chat (tool cards, pinned Knowledge) point. Studio's default opens its own\n * Knowledge page; a host with its own route (Factory's per-project page) or its own router passes both.\n */\nexport function KnowledgeLinksProvider({\n pageHref,\n refHref,\n Link,\n usePagePreview,\n children,\n}: Omit<KnowledgeLinks, 'provided'> & { children: ReactNode }) {\n return (\n <KnowledgeLinksContext.Provider value={{ pageHref, refHref, Link, usePagePreview, provided: true }}>\n {children}\n </KnowledgeLinksContext.Provider>\n );\n}\n\n/** What the host gave the provider; for renderers that must decide before drawing a link. */\nexport function useKnowledgeLinksContext(): KnowledgeLinks {\n return useContext(KnowledgeLinksContext);\n}\n\n/** Whether this host mounted a `KnowledgeLinksProvider`, i.e. has Knowledge pages chat prose can link to. */\nexport function useHasKnowledgeLinks(): boolean {\n return useContext(KnowledgeLinksContext).provided === true;\n}\n\nconst LINK_CLASS = 'min-w-0 truncate text-foreground underline-offset-2 hover:underline';\n\n/** Mounted only while the card is open, so the host's lookup runs on hover. Nothing opens until the page is known. */\nfunction PagePreviewContent({\n target,\n usePagePreview,\n}: {\n target: KnowledgePageTarget;\n usePagePreview: UseKnowledgePagePreview;\n}) {\n const card = usePagePreview(target);\n if (!card) return null;\n return (\n <HoverCardContent data-testid=\"knowledge-link-card\" className=\"flex w-max max-w-72 flex-col px-2 py-1\">\n <KnowledgePageCard {...card} />\n </HoverCardContent>\n );\n}\n\n/** A link to a Knowledge page, through the host's link component and route. */\nexport function KnowledgePageLink({\n pageId,\n pageRef,\n children,\n className = LINK_CLASS,\n}: {\n children: ReactNode;\n className?: string;\n} & KnowledgePageTarget) {\n const links = useContext(KnowledgeLinksContext);\n const [open, setOpen] = useState(false);\n const { Link: FrameworkLink } = useLinkComponent();\n const Link = links.Link ?? FrameworkLink;\n const href = pageId !== undefined ? links.pageHref(pageId) : links.refHref?.(pageRef);\n if (!href) return <span className={className}>{children}</span>;\n const link = (\n <Link href={href} className={className}>\n {children}\n </Link>\n );\n const { usePagePreview } = links;\n if (!usePagePreview) return link;\n const target: KnowledgePageTarget = pageId !== undefined ? { pageId } : { pageRef };\n return (\n <HoverCard open={open} onOpenChange={setOpen}>\n <HoverCardTrigger render={<Link href={href} className={className} />}>{children}</HoverCardTrigger>\n {open ? <PagePreviewContent target={target} usePagePreview={usePagePreview} /> : null}\n </HoverCard>\n );\n}\n"],"mappings":";;;;;;;;AAmCA,IAAM,yBAAA,GAAwBA,MAAAA,cAAAA,CAA8B;CAC1D,UAAUC,qDAAAA;CACV,SAASA,qDAAAA;AACX,CAAC;;;;;AAMD,SAAgB,uBAAuB,EACrC,UACA,SACA,MACA,gBACA,YAC6D;CAC7D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,sBAAsB,UAAvB;EAAgC,OAAO;GAAE;GAAU;GAAS;GAAM;GAAgB,UAAU;EAAK;EAC9F;CAC6B,CAAA;AAEpC;;AAGA,SAAgB,2BAA2C;CACzD,QAAA,GAAOC,MAAAA,WAAAA,CAAW,qBAAqB;AACzC;;AAGA,SAAgB,uBAAgC;CAC9C,QAAA,GAAOA,MAAAA,WAAAA,CAAW,qBAAqB,CAAC,CAAC,aAAa;AACxD;AAEA,IAAM,aAAa;;AAGnB,SAAS,mBAAmB,EAC1B,QACA,kBAIC;CACD,MAAM,OAAO,eAAe,MAAM;CAClC,IAAI,CAAC,MAAM,OAAO;CAClB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,kBAAD;EAAkB,eAAY;EAAsB,WAAU;EAC5D,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,uDAAAA,mBAAD,EAAmB,GAAI,KAAO,CAAA;CACd,CAAA;AAEtB;;AAGA,SAAgB,kBAAkB,EAChC,QACA,SACA,UACA,YAAY,cAIW;CACvB,MAAM,SAAA,GAAQF,MAAAA,WAAAA,CAAW,qBAAqB;CAC9C,MAAM,CAAC,MAAM,YAAA,GAAWG,MAAAA,SAAAA,CAAS,KAAK;CACtC,MAAM,EAAE,MAAM,kBAAkBC,sBAAAA,iBAAiB;CACjD,MAAM,OAAO,MAAM,QAAQ;CAC3B,MAAM,OAAO,WAAW,KAAA,IAAY,MAAM,SAAS,MAAM,IAAI,MAAM,UAAU,OAAO;CACpF,IAAI,CAAC,MAAM,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EAAiB;EAAY;CAAe,CAAA;CAC9D,MAAM,OACJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EAAY;EAAiB;EAC1B;CACG,CAAA;CAER,MAAM,EAAE,mBAAmB;CAC3B,IAAI,CAAC,gBAAgB,OAAO;CAE5B,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,6BAAAA,WAAD;EAAiB;EAAM,cAAc;EAArC,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,kBAAD;GAAkB,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;IAAY;IAAiB;GAAY,CAAA;GAAI;EAA2B,CAAA,GACjG,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAD;GAA4B,QAJJ,WAAW,KAAA,IAAY,EAAE,OAAO,IAAI,EAAE,QAAQ;GAIlB;EAAiB,CAAA,IAAI,IACxE;;AAEf"}
|