@mastra/playground-ui 67.0.0-alpha.3 → 68.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/KnowledgePageGraph.css +11 -0
- 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/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/knowledge/knowledge-links.cjs.js +40 -0
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js.map +1 -0
- package/dist/domains/chat/knowledge/knowledge-links.d.ts +1 -0
- package/dist/domains/chat/knowledge/knowledge-links.es.js +38 -0
- package/dist/domains/chat/knowledge/knowledge-links.es.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js +79 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.d.ts +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js +77 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +124 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.d.ts +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +123 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js.map +1 -0
- package/dist/domains/chat/knowledge.cjs.js +12 -0
- package/dist/domains/chat/knowledge.d.ts +1 -0
- package/dist/domains/chat/knowledge.es.js +5 -0
- package/dist/domains/chat/messages/message-row.cjs.js +2 -2
- package/dist/domains/chat/messages/message-row.es.js +2 -2
- package/dist/domains/chat/messages/signal-badge.cjs.js +7 -0
- package/dist/domains/chat/messages/signal-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +7 -0
- package/dist/domains/chat/messages/signal-badge.es.js.map +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-tool-badge.cjs.js +273 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.d.ts +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +270 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.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 +3 -3
- package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +2 -2
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +4 -2
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +4 -2
- 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 +3 -2
- package/dist/domains/chat/tools/tool-groups.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +3 -2
- package/dist/domains/chat/tools/tool-groups.es.js.map +1 -1
- package/dist/domains/chat.cjs.js +11 -0
- package/dist/domains/chat.es.js +5 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +438 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +436 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +521 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +520 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +626 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +625 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +170 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +168 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.cjs.js +37 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.cjs.js.map +1 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.d.ts +1 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.es.js +35 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.es.js.map +1 -0
- package/dist/domains/knowledge/lib/layout.cjs.js +93 -0
- package/dist/domains/knowledge/lib/layout.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/layout.d.ts +1 -0
- package/dist/domains/knowledge/lib/layout.es.js +92 -0
- package/dist/domains/knowledge/lib/layout.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js +135 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageGraph.es.js +128 -0
- package/dist/domains/knowledge/lib/pageGraph.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageLayout.cjs.js +49 -0
- package/dist/domains/knowledge/lib/pageLayout.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageLayout.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageLayout.es.js +48 -0
- package/dist/domains/knowledge/lib/pageLayout.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js +98 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageTree.es.js +94 -0
- package/dist/domains/knowledge/lib/pageTree.es.js.map +1 -0
- package/dist/domains/knowledge/lib/popupPlacement.cjs.js +22 -0
- package/dist/domains/knowledge/lib/popupPlacement.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/popupPlacement.d.ts +1 -0
- package/dist/domains/knowledge/lib/popupPlacement.es.js +21 -0
- package/dist/domains/knowledge/lib/popupPlacement.es.js.map +1 -0
- package/dist/domains/knowledge/lib/recordText.cjs.js +26 -0
- package/dist/domains/knowledge/lib/recordText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/recordText.d.ts +1 -0
- package/dist/domains/knowledge/lib/recordText.es.js +25 -0
- package/dist/domains/knowledge/lib/recordText.es.js.map +1 -0
- package/dist/domains/knowledge/pageTypes.cjs.js +0 -0
- package/dist/domains/knowledge/pageTypes.d.ts +1 -0
- package/dist/domains/knowledge/pageTypes.es.js +0 -0
- package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js +3 -2
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js.map +1 -1
- package/dist/domains/observability/saved-views/saved-views-provider.es.js +3 -2
- package/dist/domains/observability/saved-views/saved-views-provider.es.js.map +1 -1
- package/dist/domains/observability/saved-views/saved-views-source.cjs.js.map +1 -1
- package/dist/domains/observability/saved-views/saved-views-source.es.js.map +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +3 -2
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js.map +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +3 -2
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js.map +1 -1
- package/dist/domains/observability/saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views.es.js +1 -1
- package/dist/domains/observability.cjs.js +1 -1
- package/dist/domains/observability.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +2 -2
- package/dist/domains/skills/skill-simple-form.cjs.js.map +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +2 -2
- package/dist/domains/skills/skill-simple-form.es.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +1 -1
- package/dist/domains/spans/components/spans-explorer-body.es.js +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +1 -1
- package/dist/domains/threads/components/threads-explorer-body.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 +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
- 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/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +2 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +2 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js.map +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.cjs.js.map +1 -1
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/lib/form/dynamic-form.es.js.map +1 -1
- 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/compat.cjs.js +8 -0
- package/dist/lib/form/zod-provider/compat.cjs.js.map +1 -1
- package/dist/lib/form/zod-provider/compat.es.js +8 -1
- package/dist/lib/form/zod-provider/compat.es.js.map +1 -1
- package/dist/lib/form/zod-provider.cjs.js +1 -1
- package/dist/lib/form/zod-provider.es.js +1 -1
- package/dist/{observability-saved-views-CwCii7hh.cjs → observability-saved-views-BNU3GkK6.cjs} +8 -6
- package/dist/observability-saved-views-BNU3GkK6.cjs.map +1 -0
- package/dist/{observability-saved-views-Bo5kLN20.js → observability-saved-views-Zlz74syw.js} +8 -6
- package/dist/observability-saved-views-Zlz74syw.js.map +1 -0
- package/dist/{span-payload-primitives-Dyhbqaa7.js → span-payload-primitives-ChvD2RrN.js} +2 -2
- package/dist/{span-payload-primitives-Dyhbqaa7.js.map → span-payload-primitives-ChvD2RrN.js.map} +1 -1
- package/dist/{span-payload-primitives-B10Xxmx7.cjs → span-payload-primitives-w1vtAXAw.cjs} +2 -2
- package/dist/{span-payload-primitives-B10Xxmx7.cjs.map → span-payload-primitives-w1vtAXAw.cjs.map} +1 -1
- package/dist/src/domains/chat/index.d.ts +1 -0
- package/dist/src/domains/chat/knowledge/index.d.ts +5 -0
- package/dist/src/domains/chat/knowledge/knowledge-links.d.ts +21 -0
- package/dist/src/domains/chat/knowledge/pinned-knowledge-data.d.ts +22 -0
- package/dist/src/domains/chat/knowledge/pinned-knowledge.d.ts +9 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +19 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +2 -2
- package/dist/src/domains/knowledge/components/KnowledgePageDetail.d.ts +42 -0
- package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +80 -0
- package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +35 -0
- package/dist/src/domains/knowledge/components/KnowledgePageTree.d.ts +27 -0
- package/dist/src/domains/knowledge/hooks/useInteractionIdle.d.ts +12 -0
- package/dist/src/domains/knowledge/lib/layout.d.ts +35 -0
- package/dist/src/domains/knowledge/lib/pageGraph.d.ts +45 -0
- package/dist/src/domains/knowledge/lib/pageLayout.d.ts +24 -0
- package/dist/src/domains/knowledge/lib/pageTree.d.ts +28 -0
- package/dist/src/domains/knowledge/lib/popupPlacement.d.ts +12 -0
- package/dist/src/domains/knowledge/lib/recordText.d.ts +9 -0
- package/dist/src/domains/knowledge/pageTypes.d.ts +96 -0
- package/dist/src/domains/observability/saved-views/saved-views-provider.d.ts +6 -1
- package/dist/src/domains/observability/saved-views/saved-views-source.d.ts +1 -0
- package/dist/src/domains/observability/saved-views/use-hosted-saved-views.d.ts +1 -1
- package/dist/src/domains/skills/skill-simple-form.d.ts +3 -1
- package/dist/src/ds/components/SavedViews/saved-view-picker.d.ts +3 -1
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +30 -0
- package/dist/src/lib/form/zod-provider/compat.d.ts +5 -0
- package/dist/style.css +63 -1
- package/dist/{tool-approval-FeuyUUcL.js → tool-approval-DHeCkWHT.js} +3 -3
- package/dist/{tool-approval-FeuyUUcL.js.map → tool-approval-DHeCkWHT.js.map} +1 -1
- package/dist/{tool-approval-BfjoSNOC.cjs → tool-approval-Dfi0uAKU.cjs} +3 -3
- package/dist/{tool-approval-BfjoSNOC.cjs.map → tool-approval-Dfi0uAKU.cjs.map} +1 -1
- package/dist/{tool-call-CvilN9ti.cjs → tool-call-BCsDhIhs.cjs} +32 -2
- package/dist/{tool-call-CvilN9ti.cjs.map → tool-call-BCsDhIhs.cjs.map} +1 -1
- package/dist/{tool-call-BxYXs9w0.js → tool-call-CILZa3tn.js} +32 -2
- package/dist/{tool-call-BxYXs9w0.js.map → tool-call-CILZa3tn.js.map} +1 -1
- package/dist/{tool-card-ELW898uw.js → tool-card-C3sDFUWc.js} +18 -4
- package/dist/tool-card-C3sDFUWc.js.map +1 -0
- package/dist/{tool-card-B7O8AsRl.cjs → tool-card-CJ7Kxi-U.cjs} +18 -4
- package/dist/tool-card-CJ7Kxi-U.cjs.map +1 -0
- package/dist/{tool-presentation-BLErsb7c.cjs → tool-presentation-CQlDEwgS.cjs} +26 -1
- package/dist/tool-presentation-CQlDEwgS.cjs.map +1 -0
- package/dist/{tool-presentation-BSZYIWx2.js → tool-presentation-DvCsb_kz.js} +26 -1
- package/dist/tool-presentation-DvCsb_kz.js.map +1 -0
- package/package.json +13 -11
- package/dist/observability-saved-views-Bo5kLN20.js.map +0 -1
- package/dist/observability-saved-views-CwCii7hh.cjs.map +0 -1
- package/dist/tool-card-B7O8AsRl.cjs.map +0 -1
- package/dist/tool-card-ELW898uw.js.map +0 -1
- package/dist/tool-presentation-BLErsb7c.cjs.map +0 -1
- package/dist/tool-presentation-BSZYIWx2.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pinned-knowledge.es.js","names":[],"sources":["../../../../src/domains/chat/knowledge/pinned-knowledge.tsx"],"sourcesContent":["import { Pin } from 'lucide-react';\nimport { useState } from 'react';\nimport { KnowledgePageLink } from './knowledge-links';\nimport type { PinnedKnowledge, PinnedRow } from './pinned-knowledge-data';\nimport { ActivityItem } from '@/ds/components/ai/activity';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nconst CHANGE_MARK = { add: '+', change: '~', remove: '−' } as const;\nconst CHANGE_LABEL = { add: 'Added', change: 'Changed', remove: 'Removed' } as const;\n\nfunction summary({ mode, rows }: PinnedKnowledge): string {\n if (mode === 'snapshot') return rows.length === 1 ? '1 page' : `${rows.length} pages`;\n const count = (change: PinnedRow['change']) => rows.filter(row => row.change === change).length;\n return (['add', 'change', 'remove'] as const)\n .filter(change => count(change) > 0)\n .map(change => `${CHANGE_MARK[change]}${count(change)}`)\n .join(' ');\n}\n\nfunction PinnedRowItem({ row }: { row: PinnedRow }) {\n const [open, setOpen] = useState(false);\n const removed = row.change === 'remove';\n return (\n <li className=\"flex flex-col gap-1\" data-testid=\"pinned-knowledge-row\" data-change={row.change}>\n <div className=\"flex min-w-0 items-baseline gap-2\">\n {row.change ? (\n <span\n aria-label={CHANGE_LABEL[row.change]}\n className={`w-3 shrink-0 text-center ${removed ? 'text-muted-foreground' : 'text-foreground'}`}\n >\n <Txt as=\"span\" variant=\"label\">\n {CHANGE_MARK[row.change]}\n </Txt>\n </span>\n ) : null}\n <Txt as=\"span\" variant=\"label\" className={`min-w-0 truncate ${removed ? 'line-through opacity-70' : ''}`}>\n <KnowledgePageLink pageId={row.id}>{row.name ?? 'A pinned page'}</KnowledgePageLink>\n </Txt>\n {row.scope ? (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"truncate\">\n {row.scope}\n </Txt>\n ) : null}\n {row.text && !removed ? (\n <button\n type=\"button\"\n aria-expanded={open}\n className=\"ml-auto shrink-0 rounded px-1 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={() => setOpen(value => !value)}\n >\n <Txt as=\"span\" variant=\"meta\">\n {open ? 'Hide text' : 'Text'}\n </Txt>\n </button>\n ) : null}\n </div>\n {open && row.text ? (\n <Txt variant=\"caption\" tone=\"muted\" className=\"ml-5 break-words whitespace-pre-wrap\">\n {row.text}\n </Txt>\n ) : null}\n </li>\n );\n}\n\n/**\n * Pinned Knowledge as the agent received it: a snapshot lists every pinned page, a delta lists the pages\n * added, changed or removed since. Each page links to the Knowledge viewer; its delivered text opens below it.\n */\nexport function PinnedKnowledgeActivity({ pinned, defaultOpen }: { pinned: PinnedKnowledge; defaultOpen?: boolean }) {\n const label = pinned.mode === 'snapshot' ? 'Pinned knowledge' : 'Pinned knowledge updated';\n return (\n <ActivityItem\n icon={<Pin className=\"text-badge-amber-indicator\" aria-hidden />}\n label={label}\n detail={summary(pinned)}\n badges={<Badge size=\"xs\">{pinned.mode}</Badge>}\n defaultOpen={defaultOpen}\n data-signal-kind=\"state\"\n data-testid=\"pinned-knowledge\"\n aria-label={`Signal: ${label}`}\n >\n <div className=\"flex flex-col gap-2\">\n {pinned.rows.length ? (\n <ul className=\"flex flex-col gap-1.5\">\n {pinned.rows.map(row => (\n <PinnedRowItem key={`${row.change ?? 'pin'}-${row.id}`} row={row} />\n ))}\n </ul>\n ) : pinned.overflow ? null : (\n <Txt variant=\"meta\" tone=\"muted\">\n No pinned pages\n </Txt>\n )}\n {pinned.overflow ? (\n <Txt variant=\"meta\" tone=\"muted\">\n {pinned.overflow}\n </Txt>\n ) : null}\n </div>\n </ActivityItem>\n );\n}\n"],"mappings":";;;;;;;;AAQA,IAAM,cAAc;CAAE,KAAK;CAAK,QAAQ;CAAK,QAAQ;AAAI;AACzD,IAAM,eAAe;CAAE,KAAK;CAAS,QAAQ;CAAW,QAAQ;AAAU;AAE1E,SAAS,QAAQ,EAAE,MAAM,QAAiC;CACxD,IAAI,SAAS,YAAY,OAAO,KAAK,WAAW,IAAI,WAAW,GAAG,KAAK,OAAO;CAC9E,MAAM,SAAS,WAAgC,KAAK,QAAO,QAAO,IAAI,WAAW,MAAM,CAAC,CAAC;CACzF,OAAQ;EAAC;EAAO;EAAU;CAAQ,CAAC,CAChC,QAAO,WAAU,MAAM,MAAM,IAAI,CAAC,CAAC,CACnC,KAAI,WAAU,GAAG,YAAY,UAAU,MAAM,MAAM,GAAG,CAAC,CACvD,KAAK,GAAG;AACb;AAEA,SAAS,cAAc,EAAE,OAA2B;CAClD,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;CACtC,MAAM,UAAU,IAAI,WAAW;CAC/B,OACE,qBAAC,MAAD;EAAI,WAAU;EAAsB,eAAY;EAAuB,eAAa,IAAI;EAAxF,UAAA,CACE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA;IACG,IAAI,SACH,oBAAC,QAAD;KACE,cAAY,aAAa,IAAI;KAC7B,WAAW,4BAA4B,UAAU,0BAA0B;KAE3E,UAAA,oBAAC,KAAD;MAAK,IAAG;MAAO,SAAQ;MACpB,UAAA,YAAY,IAAI;KACd,CAAA;IACD,CAAA,IACJ;IACJ,oBAAC,KAAD;KAAK,IAAG;KAAO,SAAQ;KAAQ,WAAW,oBAAoB,UAAU,4BAA4B;KAClG,UAAA,oBAAC,mBAAD;MAAmB,QAAQ,IAAI;MAAK,UAAA,IAAI,QAAQ;KAAmC,CAAA;IAChF,CAAA;IACJ,IAAI,QACH,oBAAC,KAAD;KAAK,IAAG;KAAO,SAAQ;KAAO,MAAK;KAAQ,WAAU;KAClD,UAAA,IAAI;IACF,CAAA,IACH;IACH,IAAI,QAAQ,CAAC,UACZ,oBAAC,UAAD;KACE,MAAK;KACL,iBAAe;KACf,WAAU;KACV,eAAe,SAAQ,UAAS,CAAC,KAAK;KAEtC,UAAA,oBAAC,KAAD;MAAK,IAAG;MAAO,SAAQ;MACpB,UAAA,OAAO,cAAc;KACnB,CAAA;IACC,CAAA,IACN;GACD;EACJ,CAAA,GAAA,QAAQ,IAAI,OACX,oBAAC,KAAD;GAAK,SAAQ;GAAU,MAAK;GAAQ,WAAU;GAC3C,UAAA,IAAI;EACF,CAAA,IACH,IACF;;AAER;;;;;AAMA,SAAgB,wBAAwB,EAAE,QAAQ,eAAmE;CACnH,MAAM,QAAQ,OAAO,SAAS,aAAa,qBAAqB;CAChE,OACE,oBAAC,cAAD;EACE,MAAM,oBAAC,KAAD;GAAK,WAAU;GAA6B,eAAA;EAAa,CAAA;EACxD;EACP,QAAQ,QAAQ,MAAM;EACtB,QAAQ,oBAAC,OAAD;GAAO,MAAK;GAAM,UAAA,OAAO;EAAY,CAAA;EAChC;EACb,oBAAiB;EACjB,eAAY;EACZ,cAAY,WAAW;EAEvB,UAAA,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACG,OAAO,KAAK,SACX,oBAAC,MAAD;IAAI,WAAU;IACX,UAAA,OAAO,KAAK,KAAI,QACf,oBAAC,eAAD,EAA6D,IAAM,GAA/C,GAAG,IAAI,UAAU,MAAM,GAAG,IAAI,IAAiB,CACpE;GACC,CAAA,IACF,OAAO,WAAW,OACpB,oBAAC,KAAD;IAAK,SAAQ;IAAO,MAAK;IAAQ,UAAA;GAE5B,CAAA,GAEN,OAAO,WACN,oBAAC,KAAD;IAAK,SAAQ;IAAO,MAAK;IACtB,UAAA,OAAO;GACL,CAAA,IACH,IACD;;CACO,CAAA;AAElB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_domains_chat_knowledge_pinned_knowledge_data = require("./knowledge/pinned-knowledge-data.cjs.js");
|
|
3
|
+
const require_domains_chat_knowledge_knowledge_links = require("./knowledge/knowledge-links.cjs.js");
|
|
4
|
+
const require_domains_chat_knowledge_pinned_knowledge = require("./knowledge/pinned-knowledge.cjs.js");
|
|
5
|
+
const require_domains_chat_tools_badges_knowledge_tool_badge = require("./tools/badges/knowledge-tool-badge.cjs.js");
|
|
6
|
+
exports.KNOWLEDGE_TOOLS = require_domains_chat_tools_badges_knowledge_tool_badge.KNOWLEDGE_TOOLS;
|
|
7
|
+
exports.KnowledgeLinksProvider = require_domains_chat_knowledge_knowledge_links.KnowledgeLinksProvider;
|
|
8
|
+
exports.KnowledgePageLink = require_domains_chat_knowledge_knowledge_links.KnowledgePageLink;
|
|
9
|
+
exports.PinnedKnowledgeActivity = require_domains_chat_knowledge_pinned_knowledge.PinnedKnowledgeActivity;
|
|
10
|
+
exports.knowledgeCard = require_domains_chat_tools_badges_knowledge_tool_badge.knowledgeCard;
|
|
11
|
+
exports.knowledgePageHref = require_domains_chat_knowledge_pinned_knowledge_data.knowledgePageHref;
|
|
12
|
+
exports.pinnedKnowledgeFromSignal = require_domains_chat_knowledge_pinned_knowledge_data.pinnedKnowledgeFromSignal;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../src/domains/chat/knowledge/index';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { knowledgePageHref, pinnedKnowledgeFromSignal } from "./knowledge/pinned-knowledge-data.es.js";
|
|
2
|
+
import { KnowledgeLinksProvider, KnowledgePageLink } from "./knowledge/knowledge-links.es.js";
|
|
3
|
+
import { PinnedKnowledgeActivity } from "./knowledge/pinned-knowledge.es.js";
|
|
4
|
+
import { KNOWLEDGE_TOOLS, knowledgeCard } from "./tools/badges/knowledge-tool-badge.es.js";
|
|
5
|
+
export { KNOWLEDGE_TOOLS, KnowledgeLinksProvider, KnowledgePageLink, PinnedKnowledgeActivity, knowledgeCard, knowledgePageHref, pinnedKnowledgeFromSignal };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_Txt = require("../../../Txt-BnoSqxKE.cjs");
|
|
3
|
-
const require_tool_call = require("../../../tool-call-
|
|
3
|
+
const require_tool_call = require("../../../tool-call-BCsDhIhs.cjs");
|
|
4
4
|
const require_Arrival = require("../../../Arrival-Cs1oWjo4.cjs");
|
|
5
5
|
const require_domains_chat_messages_renderers_user_file_part_renderer = require("./renderers/user-file-part-renderer.cjs.js");
|
|
6
6
|
const require_domains_chat_attachments_split_message_attachments = require("../attachments/split-message-attachments.cjs.js");
|
|
@@ -22,7 +22,7 @@ const require_domains_chat_messages_renderers_reasoning_part_renderer = require(
|
|
|
22
22
|
const require_domains_chat_messages_renderers_status_renderers = require("./renderers/status-renderers.cjs.js");
|
|
23
23
|
const require_domains_chat_tools_tool_card_kind = require("../tools/tool-card-kind.cjs.js");
|
|
24
24
|
const require_domains_chat_tools_tool_call_effects = require("../tools/tool-call-effects.cjs.js");
|
|
25
|
-
const require_tool_card = require("../../../tool-card-
|
|
25
|
+
const require_tool_card = require("../../../tool-card-CJ7Kxi-U.cjs");
|
|
26
26
|
const require_domains_chat_tools_tool_groups = require("../tools/tool-groups.cjs.js");
|
|
27
27
|
const require_components_ai_message_reveal = require("../../../components/ai/message-reveal.cjs.js");
|
|
28
28
|
let react = require("react");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as Txt } from "../../../Txt-BM6TVV_c.js";
|
|
2
|
-
import { i as ToolCallGroup } from "../../../tool-call-
|
|
2
|
+
import { i as ToolCallGroup } from "../../../tool-call-CILZa3tn.js";
|
|
3
3
|
import { n as Arriving } from "../../../Arrival-CJFEOXr5.js";
|
|
4
4
|
import { UserFilePartRenderer } from "./renderers/user-file-part-renderer.es.js";
|
|
5
5
|
import { splitMessageAttachments } from "../attachments/split-message-attachments.es.js";
|
|
@@ -21,7 +21,7 @@ import { ReasoningPartRenderer } from "./renderers/reasoning-part-renderer.es.js
|
|
|
21
21
|
import { messageStatusRenderers } from "./renderers/status-renderers.es.js";
|
|
22
22
|
import { badgeStatus, isSettledState } from "../tools/tool-card-kind.es.js";
|
|
23
23
|
import { ToolCallEffects } from "../tools/tool-call-effects.es.js";
|
|
24
|
-
import { t as ToolCard } from "../../../tool-card-
|
|
24
|
+
import { t as ToolCard } from "../../../tool-card-C3sDFUWc.js";
|
|
25
25
|
import { collectToolGroups } from "../tools/tool-groups.es.js";
|
|
26
26
|
import { useRevealedParts } from "../../../components/ai/message-reveal.es.js";
|
|
27
27
|
import { memo, useMemo } from "react";
|
|
@@ -3,6 +3,8 @@ const require_activity = require("../../../activity-DAK8tj7r.cjs");
|
|
|
3
3
|
const require_domains_chat_messages_skill_activation = require("./skill-activation.cjs.js");
|
|
4
4
|
const require_domains_chat_messages_skill_message = require("./skill-message.cjs.js");
|
|
5
5
|
const require_domains_chat_messages_signal_data = require("./signal-data.cjs.js");
|
|
6
|
+
const require_domains_chat_knowledge_pinned_knowledge_data = require("../knowledge/pinned-knowledge-data.cjs.js");
|
|
7
|
+
const require_domains_chat_knowledge_pinned_knowledge = require("../knowledge/pinned-knowledge.cjs.js");
|
|
6
8
|
const require_domains_chat_messages_notification_signal_notice = require("./notification-signal-notice.cjs.js");
|
|
7
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
10
|
// src/domains/chat/messages/signal-badge.tsx
|
|
@@ -34,6 +36,11 @@ var SignalBadge = ({ signal: value, defaultOpen }) => {
|
|
|
34
36
|
const text = require_domains_chat_messages_signal_data.signalContentsToText(value.contents);
|
|
35
37
|
if (value.type === "state") {
|
|
36
38
|
if (getTaskSignalData(value)) return null;
|
|
39
|
+
const pinned = require_domains_chat_knowledge_pinned_knowledge_data.pinnedKnowledgeFromSignal(value);
|
|
40
|
+
if (pinned) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_pinned_knowledge.PinnedKnowledgeActivity, {
|
|
41
|
+
pinned,
|
|
42
|
+
defaultOpen
|
|
43
|
+
});
|
|
37
44
|
const state = getStateLabel(value);
|
|
38
45
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_activity.SignalActivity, {
|
|
39
46
|
kind: "state",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-badge.cjs.js","names":["isRecord","formatSignalValue","parseSkillBody","isSignalData","signalContentsToText","SignalActivity","NotificationSignalNotice","SkillMessage"],"sources":["../../../../src/domains/chat/messages/signal-badge.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\nimport { NotificationSignalNotice } from './notification-signal-notice';\nimport { formatSignalValue, isRecord, isSignalData, signalContentsToText } from './signal-data';\nimport type { SignalData } from './signal-data';\nimport { parseSkillBody } from './skill-activation';\nimport { SkillMessage } from './skill-message';\nimport { SignalActivity } from '@/ds/components/ai/activity';\n\nexport type SignalBadgeProps = {\n signal: unknown;\n defaultOpen?: boolean;\n};\n\nconst getStateLabel = (signal: SignalData) => {\n const state = isRecord(signal.metadata?.state) ? signal.metadata.state : undefined;\n return {\n id: formatSignalValue(state?.id) ?? formatSignalValue(signal.attributes?.id) ?? 'State signal',\n mode: formatSignalValue(state?.mode) ?? formatSignalValue(signal.attributes?.mode),\n };\n};\n\nfunction isTaskItemArray(value: unknown): value is TaskItem[] {\n return (\n Array.isArray(value) &&\n value.every(\n item =>\n isRecord(item) &&\n typeof item.id === 'string' &&\n typeof item.content === 'string' &&\n (item.status === 'pending' || item.status === 'in_progress' || item.status === 'completed') &&\n typeof item.activeForm === 'string',\n )\n );\n}\n\nfunction getTaskSignalData(signal: SignalData): TaskItem[] | undefined {\n const isTaskSignal =\n signal.id === 'tasks' || signal.tagName === 'current-task-list' || signal.tagName === 'task-list-update';\n if (!isTaskSignal) return undefined;\n\n const metadata = signal.metadata;\n const value = isRecord(metadata?.value) ? metadata.value : undefined;\n const tasks = value?.tasks;\n if (!isTaskItemArray(tasks)) return undefined;\n\n return tasks;\n}\n\n/** A typed skill signal (`tagName: 'skill'`, skill name in `attributes.name`), parsed into its activation. */\nfunction getSkillActivation(signal: SignalData, text: string) {\n if (signal.tagName !== 'skill') return undefined;\n const name = formatSignalValue(signal.attributes?.name);\n return name ? parseSkillBody(name, text) : undefined;\n}\n\nexport const SignalBadge = ({ signal: value, defaultOpen }: SignalBadgeProps) => {\n if (!isSignalData(value)) return null;\n\n const text = signalContentsToText(value.contents);\n\n if (value.type === 'state') {\n if (getTaskSignalData(value)) return null;\n\n const state = getStateLabel(value);\n return <SignalActivity kind=\"state\" label={state.id} mode={state.mode} message={text} defaultOpen={defaultOpen} />;\n }\n\n if (value.type === 'notification') return <NotificationSignalNotice signal={value} defaultOpen={defaultOpen} />;\n\n if (value.type === 'reactive') {\n const skill = getSkillActivation(value, text);\n if (skill) return <SkillMessage activation={skill} defaultOpen={defaultOpen} />;\n return (\n <SignalActivity kind=\"reactive\" label={value.tagName ?? 'Signal'} message={text} defaultOpen={defaultOpen} />\n );\n }\n\n return null;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"signal-badge.cjs.js","names":["isRecord","formatSignalValue","parseSkillBody","isSignalData","signalContentsToText","pinnedKnowledgeFromSignal","PinnedKnowledgeActivity","SignalActivity","NotificationSignalNotice","SkillMessage"],"sources":["../../../../src/domains/chat/messages/signal-badge.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\nimport { PinnedKnowledgeActivity } from '../knowledge/pinned-knowledge';\nimport { pinnedKnowledgeFromSignal } from '../knowledge/pinned-knowledge-data';\nimport { NotificationSignalNotice } from './notification-signal-notice';\nimport { formatSignalValue, isRecord, isSignalData, signalContentsToText } from './signal-data';\nimport type { SignalData } from './signal-data';\nimport { parseSkillBody } from './skill-activation';\nimport { SkillMessage } from './skill-message';\nimport { SignalActivity } from '@/ds/components/ai/activity';\n\nexport type SignalBadgeProps = {\n signal: unknown;\n defaultOpen?: boolean;\n};\n\nconst getStateLabel = (signal: SignalData) => {\n const state = isRecord(signal.metadata?.state) ? signal.metadata.state : undefined;\n return {\n id: formatSignalValue(state?.id) ?? formatSignalValue(signal.attributes?.id) ?? 'State signal',\n mode: formatSignalValue(state?.mode) ?? formatSignalValue(signal.attributes?.mode),\n };\n};\n\nfunction isTaskItemArray(value: unknown): value is TaskItem[] {\n return (\n Array.isArray(value) &&\n value.every(\n item =>\n isRecord(item) &&\n typeof item.id === 'string' &&\n typeof item.content === 'string' &&\n (item.status === 'pending' || item.status === 'in_progress' || item.status === 'completed') &&\n typeof item.activeForm === 'string',\n )\n );\n}\n\nfunction getTaskSignalData(signal: SignalData): TaskItem[] | undefined {\n const isTaskSignal =\n signal.id === 'tasks' || signal.tagName === 'current-task-list' || signal.tagName === 'task-list-update';\n if (!isTaskSignal) return undefined;\n\n const metadata = signal.metadata;\n const value = isRecord(metadata?.value) ? metadata.value : undefined;\n const tasks = value?.tasks;\n if (!isTaskItemArray(tasks)) return undefined;\n\n return tasks;\n}\n\n/** A typed skill signal (`tagName: 'skill'`, skill name in `attributes.name`), parsed into its activation. */\nfunction getSkillActivation(signal: SignalData, text: string) {\n if (signal.tagName !== 'skill') return undefined;\n const name = formatSignalValue(signal.attributes?.name);\n return name ? parseSkillBody(name, text) : undefined;\n}\n\nexport const SignalBadge = ({ signal: value, defaultOpen }: SignalBadgeProps) => {\n if (!isSignalData(value)) return null;\n\n const text = signalContentsToText(value.contents);\n\n if (value.type === 'state') {\n if (getTaskSignalData(value)) return null;\n\n const pinned = pinnedKnowledgeFromSignal(value);\n if (pinned) return <PinnedKnowledgeActivity pinned={pinned} defaultOpen={defaultOpen} />;\n\n const state = getStateLabel(value);\n return <SignalActivity kind=\"state\" label={state.id} mode={state.mode} message={text} defaultOpen={defaultOpen} />;\n }\n\n if (value.type === 'notification') return <NotificationSignalNotice signal={value} defaultOpen={defaultOpen} />;\n\n if (value.type === 'reactive') {\n const skill = getSkillActivation(value, text);\n if (skill) return <SkillMessage activation={skill} defaultOpen={defaultOpen} />;\n return (\n <SignalActivity kind=\"reactive\" label={value.tagName ?? 'Signal'} message={text} defaultOpen={defaultOpen} />\n );\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;;;AAgBA,IAAM,iBAAiB,WAAuB;CAC5C,MAAM,QAAQA,0CAAAA,SAAS,OAAO,UAAU,KAAK,IAAI,OAAO,SAAS,QAAQ,KAAA;CACzE,OAAO;EACL,IAAIC,0CAAAA,kBAAkB,OAAO,EAAE,KAAKA,0CAAAA,kBAAkB,OAAO,YAAY,EAAE,KAAK;EAChF,MAAMA,0CAAAA,kBAAkB,OAAO,IAAI,KAAKA,0CAAAA,kBAAkB,OAAO,YAAY,IAAI;CACnF;AACF;AAEA,SAAS,gBAAgB,OAAqC;CAC5D,OACE,MAAM,QAAQ,KAAK,KACnB,MAAM,OACJ,SACED,0CAAAA,SAAS,IAAI,KACb,OAAO,KAAK,OAAO,YACnB,OAAO,KAAK,YAAY,aACvB,KAAK,WAAW,aAAa,KAAK,WAAW,iBAAiB,KAAK,WAAW,gBAC/E,OAAO,KAAK,eAAe,QAC/B;AAEJ;AAEA,SAAS,kBAAkB,QAA4C;CAGrE,IAAI,EADF,OAAO,OAAO,WAAW,OAAO,YAAY,uBAAuB,OAAO,YAAY,qBACrE,OAAO,KAAA;CAE1B,MAAM,WAAW,OAAO;CAExB,MAAM,SADQA,0CAAAA,SAAS,UAAU,KAAK,IAAI,SAAS,QAAQ,KAAA,EAAA,EACtC;CACrB,IAAI,CAAC,gBAAgB,KAAK,GAAG,OAAO,KAAA;CAEpC,OAAO;AACT;;AAGA,SAAS,mBAAmB,QAAoB,MAAc;CAC5D,IAAI,OAAO,YAAY,SAAS,OAAO,KAAA;CACvC,MAAM,OAAOC,0CAAAA,kBAAkB,OAAO,YAAY,IAAI;CACtD,OAAO,OAAOC,+CAAAA,eAAe,MAAM,IAAI,IAAI,KAAA;AAC7C;AAEA,IAAa,eAAe,EAAE,QAAQ,OAAO,kBAAoC;CAC/E,IAAI,CAACC,0CAAAA,aAAa,KAAK,GAAG,OAAO;CAEjC,MAAM,OAAOC,0CAAAA,qBAAqB,MAAM,QAAQ;CAEhD,IAAI,MAAM,SAAS,SAAS;EAC1B,IAAI,kBAAkB,KAAK,GAAG,OAAO;EAErC,MAAM,SAASC,qDAAAA,0BAA0B,KAAK;EAC9C,IAAI,QAAQ,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,gDAAAA,yBAAD;GAAiC;GAAqB;EAAc,CAAA;EAEvF,MAAM,QAAQ,cAAc,KAAK;EACjC,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,iBAAAA,gBAAD;GAAgB,MAAK;GAAQ,OAAO,MAAM;GAAI,MAAM,MAAM;GAAM,SAAS;GAAmB;EAAc,CAAA;CACnH;CAEA,IAAI,MAAM,SAAS,gBAAgB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,yDAAAA,0BAAD;EAA0B,QAAQ;EAAoB;CAAc,CAAA;CAE9G,IAAI,MAAM,SAAS,YAAY;EAC7B,MAAM,QAAQ,mBAAmB,OAAO,IAAI;EAC5C,IAAI,OAAO,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,cAAD;GAAc,YAAY;GAAoB;EAAc,CAAA;EAC9E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,iBAAAA,gBAAD;GAAgB,MAAK;GAAW,OAAO,MAAM,WAAW;GAAU,SAAS;GAAmB;EAAc,CAAA;CAEhH;CAEA,OAAO;AACT"}
|
|
@@ -2,6 +2,8 @@ import { t as SignalActivity } from "../../../activity-CM34JyW-.js";
|
|
|
2
2
|
import { parseSkillBody } from "./skill-activation.es.js";
|
|
3
3
|
import { SkillMessage } from "./skill-message.es.js";
|
|
4
4
|
import { formatSignalValue, isRecord, isSignalData, signalContentsToText } from "./signal-data.es.js";
|
|
5
|
+
import { pinnedKnowledgeFromSignal } from "../knowledge/pinned-knowledge-data.es.js";
|
|
6
|
+
import { PinnedKnowledgeActivity } from "../knowledge/pinned-knowledge.es.js";
|
|
5
7
|
import { NotificationSignalNotice } from "./notification-signal-notice.es.js";
|
|
6
8
|
import { jsx } from "react/jsx-runtime";
|
|
7
9
|
// src/domains/chat/messages/signal-badge.tsx
|
|
@@ -33,6 +35,11 @@ var SignalBadge = ({ signal: value, defaultOpen }) => {
|
|
|
33
35
|
const text = signalContentsToText(value.contents);
|
|
34
36
|
if (value.type === "state") {
|
|
35
37
|
if (getTaskSignalData(value)) return null;
|
|
38
|
+
const pinned = pinnedKnowledgeFromSignal(value);
|
|
39
|
+
if (pinned) return /* @__PURE__ */ jsx(PinnedKnowledgeActivity, {
|
|
40
|
+
pinned,
|
|
41
|
+
defaultOpen
|
|
42
|
+
});
|
|
36
43
|
const state = getStateLabel(value);
|
|
37
44
|
return /* @__PURE__ */ jsx(SignalActivity, {
|
|
38
45
|
kind: "state",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-badge.es.js","names":[],"sources":["../../../../src/domains/chat/messages/signal-badge.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\nimport { NotificationSignalNotice } from './notification-signal-notice';\nimport { formatSignalValue, isRecord, isSignalData, signalContentsToText } from './signal-data';\nimport type { SignalData } from './signal-data';\nimport { parseSkillBody } from './skill-activation';\nimport { SkillMessage } from './skill-message';\nimport { SignalActivity } from '@/ds/components/ai/activity';\n\nexport type SignalBadgeProps = {\n signal: unknown;\n defaultOpen?: boolean;\n};\n\nconst getStateLabel = (signal: SignalData) => {\n const state = isRecord(signal.metadata?.state) ? signal.metadata.state : undefined;\n return {\n id: formatSignalValue(state?.id) ?? formatSignalValue(signal.attributes?.id) ?? 'State signal',\n mode: formatSignalValue(state?.mode) ?? formatSignalValue(signal.attributes?.mode),\n };\n};\n\nfunction isTaskItemArray(value: unknown): value is TaskItem[] {\n return (\n Array.isArray(value) &&\n value.every(\n item =>\n isRecord(item) &&\n typeof item.id === 'string' &&\n typeof item.content === 'string' &&\n (item.status === 'pending' || item.status === 'in_progress' || item.status === 'completed') &&\n typeof item.activeForm === 'string',\n )\n );\n}\n\nfunction getTaskSignalData(signal: SignalData): TaskItem[] | undefined {\n const isTaskSignal =\n signal.id === 'tasks' || signal.tagName === 'current-task-list' || signal.tagName === 'task-list-update';\n if (!isTaskSignal) return undefined;\n\n const metadata = signal.metadata;\n const value = isRecord(metadata?.value) ? metadata.value : undefined;\n const tasks = value?.tasks;\n if (!isTaskItemArray(tasks)) return undefined;\n\n return tasks;\n}\n\n/** A typed skill signal (`tagName: 'skill'`, skill name in `attributes.name`), parsed into its activation. */\nfunction getSkillActivation(signal: SignalData, text: string) {\n if (signal.tagName !== 'skill') return undefined;\n const name = formatSignalValue(signal.attributes?.name);\n return name ? parseSkillBody(name, text) : undefined;\n}\n\nexport const SignalBadge = ({ signal: value, defaultOpen }: SignalBadgeProps) => {\n if (!isSignalData(value)) return null;\n\n const text = signalContentsToText(value.contents);\n\n if (value.type === 'state') {\n if (getTaskSignalData(value)) return null;\n\n const state = getStateLabel(value);\n return <SignalActivity kind=\"state\" label={state.id} mode={state.mode} message={text} defaultOpen={defaultOpen} />;\n }\n\n if (value.type === 'notification') return <NotificationSignalNotice signal={value} defaultOpen={defaultOpen} />;\n\n if (value.type === 'reactive') {\n const skill = getSkillActivation(value, text);\n if (skill) return <SkillMessage activation={skill} defaultOpen={defaultOpen} />;\n return (\n <SignalActivity kind=\"reactive\" label={value.tagName ?? 'Signal'} message={text} defaultOpen={defaultOpen} />\n );\n }\n\n return null;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"signal-badge.es.js","names":[],"sources":["../../../../src/domains/chat/messages/signal-badge.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\nimport { PinnedKnowledgeActivity } from '../knowledge/pinned-knowledge';\nimport { pinnedKnowledgeFromSignal } from '../knowledge/pinned-knowledge-data';\nimport { NotificationSignalNotice } from './notification-signal-notice';\nimport { formatSignalValue, isRecord, isSignalData, signalContentsToText } from './signal-data';\nimport type { SignalData } from './signal-data';\nimport { parseSkillBody } from './skill-activation';\nimport { SkillMessage } from './skill-message';\nimport { SignalActivity } from '@/ds/components/ai/activity';\n\nexport type SignalBadgeProps = {\n signal: unknown;\n defaultOpen?: boolean;\n};\n\nconst getStateLabel = (signal: SignalData) => {\n const state = isRecord(signal.metadata?.state) ? signal.metadata.state : undefined;\n return {\n id: formatSignalValue(state?.id) ?? formatSignalValue(signal.attributes?.id) ?? 'State signal',\n mode: formatSignalValue(state?.mode) ?? formatSignalValue(signal.attributes?.mode),\n };\n};\n\nfunction isTaskItemArray(value: unknown): value is TaskItem[] {\n return (\n Array.isArray(value) &&\n value.every(\n item =>\n isRecord(item) &&\n typeof item.id === 'string' &&\n typeof item.content === 'string' &&\n (item.status === 'pending' || item.status === 'in_progress' || item.status === 'completed') &&\n typeof item.activeForm === 'string',\n )\n );\n}\n\nfunction getTaskSignalData(signal: SignalData): TaskItem[] | undefined {\n const isTaskSignal =\n signal.id === 'tasks' || signal.tagName === 'current-task-list' || signal.tagName === 'task-list-update';\n if (!isTaskSignal) return undefined;\n\n const metadata = signal.metadata;\n const value = isRecord(metadata?.value) ? metadata.value : undefined;\n const tasks = value?.tasks;\n if (!isTaskItemArray(tasks)) return undefined;\n\n return tasks;\n}\n\n/** A typed skill signal (`tagName: 'skill'`, skill name in `attributes.name`), parsed into its activation. */\nfunction getSkillActivation(signal: SignalData, text: string) {\n if (signal.tagName !== 'skill') return undefined;\n const name = formatSignalValue(signal.attributes?.name);\n return name ? parseSkillBody(name, text) : undefined;\n}\n\nexport const SignalBadge = ({ signal: value, defaultOpen }: SignalBadgeProps) => {\n if (!isSignalData(value)) return null;\n\n const text = signalContentsToText(value.contents);\n\n if (value.type === 'state') {\n if (getTaskSignalData(value)) return null;\n\n const pinned = pinnedKnowledgeFromSignal(value);\n if (pinned) return <PinnedKnowledgeActivity pinned={pinned} defaultOpen={defaultOpen} />;\n\n const state = getStateLabel(value);\n return <SignalActivity kind=\"state\" label={state.id} mode={state.mode} message={text} defaultOpen={defaultOpen} />;\n }\n\n if (value.type === 'notification') return <NotificationSignalNotice signal={value} defaultOpen={defaultOpen} />;\n\n if (value.type === 'reactive') {\n const skill = getSkillActivation(value, text);\n if (skill) return <SkillMessage activation={skill} defaultOpen={defaultOpen} />;\n return (\n <SignalActivity kind=\"reactive\" label={value.tagName ?? 'Signal'} message={text} defaultOpen={defaultOpen} />\n );\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;;AAgBA,IAAM,iBAAiB,WAAuB;CAC5C,MAAM,QAAQ,SAAS,OAAO,UAAU,KAAK,IAAI,OAAO,SAAS,QAAQ,KAAA;CACzE,OAAO;EACL,IAAI,kBAAkB,OAAO,EAAE,KAAK,kBAAkB,OAAO,YAAY,EAAE,KAAK;EAChF,MAAM,kBAAkB,OAAO,IAAI,KAAK,kBAAkB,OAAO,YAAY,IAAI;CACnF;AACF;AAEA,SAAS,gBAAgB,OAAqC;CAC5D,OACE,MAAM,QAAQ,KAAK,KACnB,MAAM,OACJ,SACE,SAAS,IAAI,KACb,OAAO,KAAK,OAAO,YACnB,OAAO,KAAK,YAAY,aACvB,KAAK,WAAW,aAAa,KAAK,WAAW,iBAAiB,KAAK,WAAW,gBAC/E,OAAO,KAAK,eAAe,QAC/B;AAEJ;AAEA,SAAS,kBAAkB,QAA4C;CAGrE,IAAI,EADF,OAAO,OAAO,WAAW,OAAO,YAAY,uBAAuB,OAAO,YAAY,qBACrE,OAAO,KAAA;CAE1B,MAAM,WAAW,OAAO;CAExB,MAAM,SADQ,SAAS,UAAU,KAAK,IAAI,SAAS,QAAQ,KAAA,EAAA,EACtC;CACrB,IAAI,CAAC,gBAAgB,KAAK,GAAG,OAAO,KAAA;CAEpC,OAAO;AACT;;AAGA,SAAS,mBAAmB,QAAoB,MAAc;CAC5D,IAAI,OAAO,YAAY,SAAS,OAAO,KAAA;CACvC,MAAM,OAAO,kBAAkB,OAAO,YAAY,IAAI;CACtD,OAAO,OAAO,eAAe,MAAM,IAAI,IAAI,KAAA;AAC7C;AAEA,IAAa,eAAe,EAAE,QAAQ,OAAO,kBAAoC;CAC/E,IAAI,CAAC,aAAa,KAAK,GAAG,OAAO;CAEjC,MAAM,OAAO,qBAAqB,MAAM,QAAQ;CAEhD,IAAI,MAAM,SAAS,SAAS;EAC1B,IAAI,kBAAkB,KAAK,GAAG,OAAO;EAErC,MAAM,SAAS,0BAA0B,KAAK;EAC9C,IAAI,QAAQ,OAAO,oBAAC,yBAAD;GAAiC;GAAqB;EAAc,CAAA;EAEvF,MAAM,QAAQ,cAAc,KAAK;EACjC,OAAO,oBAAC,gBAAD;GAAgB,MAAK;GAAQ,OAAO,MAAM;GAAI,MAAM,MAAM;GAAM,SAAS;GAAmB;EAAc,CAAA;CACnH;CAEA,IAAI,MAAM,SAAS,gBAAgB,OAAO,oBAAC,0BAAD;EAA0B,QAAQ;EAAoB;CAAc,CAAA;CAE9G,IAAI,MAAM,SAAS,YAAY;EAC7B,MAAM,QAAQ,mBAAmB,OAAO,IAAI;EAC5C,IAAI,OAAO,OAAO,oBAAC,cAAD;GAAc,YAAY;GAAoB;EAAc,CAAA;EAC9E,OACE,oBAAC,gBAAD;GAAgB,MAAK;GAAW,OAAO,MAAM,WAAW;GAAU,SAAS;GAAmB;EAAc,CAAA;CAEhH;CAEA,OAAO;AACT"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_card = require("../../../../tool-card-
|
|
2
|
+
const require_tool_card = require("../../../../tool-card-CJ7Kxi-U.cjs");
|
|
3
3
|
exports.AgentBadgeWrapper = require_tool_card.AgentBadgeWrapper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { r as AgentBadgeWrapper } from "../../../../tool-card-
|
|
1
|
+
export { r as AgentBadgeWrapper } from "../../../../tool-card-C3sDFUWc.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_card = require("../../../../tool-card-
|
|
2
|
+
const require_tool_card = require("../../../../tool-card-CJ7Kxi-U.cjs");
|
|
3
3
|
exports.AgentBadge = require_tool_card.AgentBadge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { i as AgentBadge } from "../../../../tool-card-
|
|
1
|
+
export { i as AgentBadge } from "../../../../tool-card-C3sDFUWc.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_Txt = require("../../../../Txt-BnoSqxKE.cjs");
|
|
3
|
-
const require_tool_call = require("../../../../tool-call-
|
|
4
|
-
const require_tool_presentation = require("../../../../tool-presentation-
|
|
3
|
+
const require_tool_call = require("../../../../tool-call-BCsDhIhs.cjs");
|
|
4
|
+
const require_tool_presentation = require("../../../../tool-presentation-CQlDEwgS.cjs");
|
|
5
5
|
const require_domains_chat_tools_badges_awaits_tool_approval = require("./awaits-tool-approval.cjs.js");
|
|
6
6
|
const require_domains_chat_tools_badges_tool_approval_badge = require("./tool-approval-badge.cjs.js");
|
|
7
7
|
const require_domains_chat_tools_badges_workspace_data_parts = require("./workspace-data-parts.cjs.js");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as Txt } from "../../../../Txt-BM6TVV_c.js";
|
|
2
|
-
import { a as ToolCallArguments, r as ToolCallOutput } from "../../../../tool-call-
|
|
3
|
-
import { r as presentTool } from "../../../../tool-presentation-
|
|
2
|
+
import { a as ToolCallArguments, r as ToolCallOutput } from "../../../../tool-call-CILZa3tn.js";
|
|
3
|
+
import { r as presentTool } from "../../../../tool-presentation-DvCsb_kz.js";
|
|
4
4
|
import { awaitsToolApproval } from "./awaits-tool-approval.es.js";
|
|
5
5
|
import { ToolApprovalBadge } from "./tool-approval-badge.es.js";
|
|
6
6
|
import { parseToolArgs, workspaceMetadata } from "./workspace-data-parts.es.js";
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_Txt = require("../../../../Txt-BnoSqxKE.cjs");
|
|
3
|
+
const require_MarkdownRenderer = require("../../../../MarkdownRenderer-CS6u5drO.cjs");
|
|
4
|
+
const require_domains_chat_messages_signal_data = require("../../messages/signal-data.cjs.js");
|
|
5
|
+
const require_domains_chat_knowledge_knowledge_links = require("../../knowledge/knowledge-links.cjs.js");
|
|
6
|
+
const require_domains_chat_tools_badges_tool_approval_badge = require("./tool-approval-badge.cjs.js");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let lucide_react = require("lucide-react");
|
|
9
|
+
// src/domains/chat/tools/badges/knowledge-tool-badge.tsx
|
|
10
|
+
/** The tools `Knowledge.createTools()` gives an agent. */
|
|
11
|
+
var KNOWLEDGE_TOOLS = /* @__PURE__ */ new Set([
|
|
12
|
+
"knowledge_search",
|
|
13
|
+
"knowledge_read",
|
|
14
|
+
"knowledge_page",
|
|
15
|
+
"knowledge_note",
|
|
16
|
+
"knowledge_pin"
|
|
17
|
+
]);
|
|
18
|
+
var str = (value) => typeof value === "string" && value ? value : void 0;
|
|
19
|
+
function asPage(value) {
|
|
20
|
+
if (!require_domains_chat_messages_signal_data.isRecord(value) || !str(value.id) || typeof value.name !== "string") return void 0;
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function asNotes(value) {
|
|
24
|
+
return Array.isArray(value) ? value.filter((note) => require_domains_chat_messages_signal_data.isRecord(note) && typeof note.text === "string") : [];
|
|
25
|
+
}
|
|
26
|
+
var where = (page) => page.address ?? page.scope;
|
|
27
|
+
function PageLink({ page }) {
|
|
28
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_knowledge_links.KnowledgePageLink, {
|
|
29
|
+
pageId: page.id,
|
|
30
|
+
children: page.name
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function Meta({ children }) {
|
|
34
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
35
|
+
as: "span",
|
|
36
|
+
variant: "meta",
|
|
37
|
+
tone: "muted",
|
|
38
|
+
className: "truncate",
|
|
39
|
+
children
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function PageLine({ page, linked = true }) {
|
|
43
|
+
const scope = where(page);
|
|
44
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
45
|
+
className: "flex min-w-0 items-baseline gap-2",
|
|
46
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
47
|
+
as: "span",
|
|
48
|
+
variant: "label",
|
|
49
|
+
children: linked ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLink, { page }) : page.name
|
|
50
|
+
}), scope ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: page.key ? `${scope}#${page.key}` : scope }) : null]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function Body({ markdown }) {
|
|
54
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
55
|
+
className: "border-border1 max-h-64 overflow-auto rounded-md border p-2",
|
|
56
|
+
"data-testid": "knowledge-tool-body",
|
|
57
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MarkdownRenderer.MarkdownRenderer, { children: markdown })
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
var MENTION = /\[\[([^\]]+)\]\]/g;
|
|
61
|
+
/** A note's text with each resolved `[[Page Name]]` linking to its page; unresolved names stay plain. */
|
|
62
|
+
function NoteText({ note }) {
|
|
63
|
+
const parts = [];
|
|
64
|
+
let last = 0;
|
|
65
|
+
for (const match of note.text.matchAll(MENTION)) {
|
|
66
|
+
const ref = (match[1] ?? "").trim();
|
|
67
|
+
const mentioned = note.mentions && Object.hasOwn(note.mentions, ref) ? note.mentions[ref] : void 0;
|
|
68
|
+
const pageId = typeof mentioned === "string" ? mentioned : void 0;
|
|
69
|
+
parts.push(note.text.slice(last, match.index));
|
|
70
|
+
parts.push(pageId ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_knowledge_knowledge_links.KnowledgePageLink, {
|
|
71
|
+
pageId,
|
|
72
|
+
className: "text-foreground underline decoration-dotted underline-offset-2 hover:decoration-solid",
|
|
73
|
+
children: ref
|
|
74
|
+
}, match.index) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
75
|
+
className: "text-foreground",
|
|
76
|
+
"data-testid": "knowledge-unresolved-mention",
|
|
77
|
+
children: ref
|
|
78
|
+
}, match.index));
|
|
79
|
+
last = match.index + match[0].length;
|
|
80
|
+
}
|
|
81
|
+
parts.push(note.text.slice(last));
|
|
82
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: parts });
|
|
83
|
+
}
|
|
84
|
+
function NoteList({ notes }) {
|
|
85
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
86
|
+
className: "flex flex-col gap-1",
|
|
87
|
+
children: notes.map((note) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
88
|
+
className: "flex flex-col",
|
|
89
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
90
|
+
as: "span",
|
|
91
|
+
variant: "body",
|
|
92
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoteText, { note })
|
|
93
|
+
}), note.page || note.author ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: [
|
|
94
|
+
note.page ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLink, { page: note.page }) : null,
|
|
95
|
+
note.page && note.author ? " · " : null,
|
|
96
|
+
note.author
|
|
97
|
+
] }) : null]
|
|
98
|
+
}, note.id))
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/** What each Knowledge tool's settled result says, or null when the shape isn't one we know. */
|
|
102
|
+
function knowledgeCard(toolName, input, output) {
|
|
103
|
+
if (!require_domains_chat_messages_signal_data.isRecord(output)) return null;
|
|
104
|
+
const args = require_domains_chat_messages_signal_data.isRecord(input) ? input : {};
|
|
105
|
+
switch (toolName) {
|
|
106
|
+
case "knowledge_search": {
|
|
107
|
+
if (!Array.isArray(output.results)) return null;
|
|
108
|
+
const hits = output.results.filter(require_domains_chat_messages_signal_data.isRecord);
|
|
109
|
+
return {
|
|
110
|
+
title: "Searched Knowledge",
|
|
111
|
+
detail: str(args.query),
|
|
112
|
+
body: hits.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
113
|
+
className: "flex flex-col gap-1.5",
|
|
114
|
+
children: hits.map((hit, index) => {
|
|
115
|
+
const page = asPage(hit.page);
|
|
116
|
+
const [note] = asNotes([hit.note]);
|
|
117
|
+
return page ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
118
|
+
className: "flex flex-col",
|
|
119
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLine, { page }), note ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoteText, { note }) }) : null]
|
|
120
|
+
}, `${page.id}-${note?.id ?? index}`) : null;
|
|
121
|
+
})
|
|
122
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: "No matches" })
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
case "knowledge_read": {
|
|
126
|
+
const page = asPage(output.page);
|
|
127
|
+
if (!page) {
|
|
128
|
+
if (!Array.isArray(output.scopes)) return null;
|
|
129
|
+
const scopes = output.scopes.filter(require_domains_chat_messages_signal_data.isRecord);
|
|
130
|
+
return {
|
|
131
|
+
title: "Listed Knowledge scopes",
|
|
132
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
133
|
+
className: "flex flex-col gap-1",
|
|
134
|
+
children: scopes.map((scope) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", { children: [
|
|
135
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
136
|
+
as: "span",
|
|
137
|
+
variant: "body",
|
|
138
|
+
children: String(scope.name)
|
|
139
|
+
}),
|
|
140
|
+
" ",
|
|
141
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: String(scope.address) })
|
|
142
|
+
] }, String(scope.address)))
|
|
143
|
+
})
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
const notes = asNotes(output.notes);
|
|
147
|
+
const children = Array.isArray(output.children) ? output.children.map(asPage).filter((child) => child !== void 0) : [];
|
|
148
|
+
const mentionedIn = asNotes(output.mentionedIn);
|
|
149
|
+
const childScopes = Array.isArray(output.childScopes) ? output.childScopes.filter(require_domains_chat_messages_signal_data.isRecord) : [];
|
|
150
|
+
return {
|
|
151
|
+
title: "Read",
|
|
152
|
+
detail: page.name,
|
|
153
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
154
|
+
className: "flex flex-col gap-2",
|
|
155
|
+
children: [
|
|
156
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLine, { page }),
|
|
157
|
+
page.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: page.description }) : null,
|
|
158
|
+
page.body ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Body, { markdown: page.body }) : null,
|
|
159
|
+
notes.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoteList, { notes }) : null,
|
|
160
|
+
children.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: ["Child pages: ", children.map((child) => child.name).join(", ")] }) : null,
|
|
161
|
+
childScopes.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: [
|
|
162
|
+
"Child scopes:",
|
|
163
|
+
" ",
|
|
164
|
+
childScopes.map((scope) => scope.address ? `${String(scope.name)} (${String(scope.address)})` : String(scope.name)).join(", ")
|
|
165
|
+
] }) : null,
|
|
166
|
+
mentionedIn.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
167
|
+
className: "flex flex-col gap-1",
|
|
168
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: "Mentioned in" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoteList, { notes: mentionedIn })]
|
|
169
|
+
}) : null
|
|
170
|
+
]
|
|
171
|
+
})
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
case "knowledge_page": {
|
|
175
|
+
const page = asPage(output.page);
|
|
176
|
+
if (!page) return null;
|
|
177
|
+
const op = str(args.op);
|
|
178
|
+
if (op === "delete") return {
|
|
179
|
+
title: "Deleted page",
|
|
180
|
+
detail: page.name,
|
|
181
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLine, {
|
|
182
|
+
page,
|
|
183
|
+
linked: false
|
|
184
|
+
})
|
|
185
|
+
};
|
|
186
|
+
const title = op === "move" ? "Moved page" : op === "merge" ? "Merged page" : args.page ? "Updated page" : "Created page";
|
|
187
|
+
const body = str(args.body);
|
|
188
|
+
const description = str(args.description);
|
|
189
|
+
return {
|
|
190
|
+
title,
|
|
191
|
+
detail: page.name,
|
|
192
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
193
|
+
className: "flex flex-col gap-2",
|
|
194
|
+
children: [
|
|
195
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLine, { page }),
|
|
196
|
+
op === "merge" && str(args.page) ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: [
|
|
197
|
+
"Merged ",
|
|
198
|
+
str(args.page),
|
|
199
|
+
" into this page"
|
|
200
|
+
] }) : null,
|
|
201
|
+
typeof page.version === "number" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: ["Version ", page.version] }) : null,
|
|
202
|
+
description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: description }) : null,
|
|
203
|
+
body ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Body, { markdown: body }) : null
|
|
204
|
+
]
|
|
205
|
+
})
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
case "knowledge_note": {
|
|
209
|
+
if (str(output.removed)) return {
|
|
210
|
+
title: "Removed note",
|
|
211
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: ["Note ", String(output.removed)] })
|
|
212
|
+
};
|
|
213
|
+
const [note] = asNotes([output.note]);
|
|
214
|
+
if (!note) return null;
|
|
215
|
+
const pageRef = str(args.page);
|
|
216
|
+
const pageId = str(output.page);
|
|
217
|
+
return {
|
|
218
|
+
title: str(args.op) === "restamp" ? "Restamped note" : "Added note",
|
|
219
|
+
detail: pageRef,
|
|
220
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
221
|
+
className: "flex flex-col gap-1",
|
|
222
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
223
|
+
as: "span",
|
|
224
|
+
variant: "body",
|
|
225
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoteText, { note })
|
|
226
|
+
}), pageId ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Meta, { children: ["On ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLink, { page: {
|
|
227
|
+
id: pageId,
|
|
228
|
+
name: pageRef ?? "the page"
|
|
229
|
+
} })] }) : null]
|
|
230
|
+
})
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
case "knowledge_pin": {
|
|
234
|
+
const pageId = str(output.page);
|
|
235
|
+
if (!pageId || !Array.isArray(output.audience)) return null;
|
|
236
|
+
const pageRef = str(args.page);
|
|
237
|
+
const audience = output.audience.filter((entry) => typeof entry === "string");
|
|
238
|
+
return {
|
|
239
|
+
title: str(args.op) === "unpin" ? "Unpinned page" : "Pinned page",
|
|
240
|
+
detail: pageRef,
|
|
241
|
+
body: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
242
|
+
className: "flex flex-col gap-1",
|
|
243
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageLink, { page: {
|
|
244
|
+
id: pageId,
|
|
245
|
+
name: pageRef ?? "the page"
|
|
246
|
+
} }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Meta, { children: audience.length ? `Pinned for ${audience.join(", ")}` : "No longer pinned for anyone" })]
|
|
247
|
+
})
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
default: return null;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
var KnowledgeToolBadge = ({ card, toolName, metadata, toolCallId, toolApprovalMetadata, isNetwork, status = "idle" }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_chat_tools_badges_tool_approval_badge.ToolApprovalBadge, {
|
|
254
|
+
approval: {
|
|
255
|
+
toolCalled: true,
|
|
256
|
+
toolCallId,
|
|
257
|
+
toolApprovalMetadata,
|
|
258
|
+
toolName,
|
|
259
|
+
isNetwork,
|
|
260
|
+
isGenerateMode: metadata?.mode === "generate"
|
|
261
|
+
},
|
|
262
|
+
"data-testid": "knowledge-tool-badge",
|
|
263
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.BookOpen, { "aria-hidden": true }),
|
|
264
|
+
title: card.title,
|
|
265
|
+
detail: card.detail,
|
|
266
|
+
status,
|
|
267
|
+
children: card.body
|
|
268
|
+
});
|
|
269
|
+
exports.KNOWLEDGE_TOOLS = KNOWLEDGE_TOOLS;
|
|
270
|
+
exports.KnowledgeToolBadge = KnowledgeToolBadge;
|
|
271
|
+
exports.knowledgeCard = knowledgeCard;
|
|
272
|
+
|
|
273
|
+
//# sourceMappingURL=knowledge-tool-badge.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-tool-badge.cjs.js","names":["isRecord","KnowledgePageLink","Txt","MarkdownRenderer","_Fragment","ToolApprovalBadge","BookOpen"],"sources":["../../../../../src/domains/chat/tools/badges/knowledge-tool-badge.tsx"],"sourcesContent":["import { BookOpen } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { KnowledgePageLink } from '../../knowledge/knowledge-links';\nimport { isRecord } from '../../messages/signal-data';\nimport type { MessageMetadata } from '@/domains/chat';\nimport type { ToolApprovalRequest } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport { ToolApprovalBadge } from '@/domains/chat/tools/badges/tool-approval-badge';\nimport type { ActivityStatus } from '@/ds/components/ai/activity';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Txt } from '@/ds/components/Txt';\n\n/** The tools `Knowledge.createTools()` gives an agent. */\nexport const KNOWLEDGE_TOOLS = new Set([\n 'knowledge_search',\n 'knowledge_read',\n 'knowledge_page',\n 'knowledge_note',\n 'knowledge_pin',\n]);\n\ninterface PageSummary {\n id: string;\n name: string;\n address?: string;\n scope?: string;\n key?: string;\n description?: string;\n version?: number;\n body?: string;\n}\n\ninterface NoteSummary {\n id: string;\n text: string;\n author?: string;\n page?: PageSummary;\n /** Which `[[ref]]` in `text` links to which page id; refs the server couldn't resolve aren't here. */\n mentions?: Record<string, string>;\n}\n\nconst str = (value: unknown): string | undefined => (typeof value === 'string' && value ? value : undefined);\n\nfunction asPage(value: unknown): PageSummary | undefined {\n if (!isRecord(value) || !str(value.id) || typeof value.name !== 'string') return undefined;\n return value as unknown as PageSummary;\n}\n\nfunction asNotes(value: unknown): NoteSummary[] {\n return Array.isArray(value)\n ? value.filter((note): note is NoteSummary => isRecord(note) && typeof note.text === 'string')\n : [];\n}\n\nconst where = (page: PageSummary) => page.address ?? page.scope;\n\nfunction PageLink({ page }: { page: PageSummary }) {\n return <KnowledgePageLink pageId={page.id}>{page.name}</KnowledgePageLink>;\n}\n\nfunction Meta({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\nfunction PageLine({ page, linked = true }: { page: PageSummary; linked?: boolean }) {\n const scope = where(page);\n return (\n <div className=\"flex min-w-0 items-baseline gap-2\">\n <Txt as=\"span\" variant=\"label\">\n {linked ? <PageLink page={page} /> : page.name}\n </Txt>\n {scope ? <Meta>{page.key ? `${scope}#${page.key}` : scope}</Meta> : null}\n </div>\n );\n}\n\nfunction Body({ markdown }: { markdown: string }) {\n return (\n <div className=\"border-border1 max-h-64 overflow-auto rounded-md border p-2\" data-testid=\"knowledge-tool-body\">\n <MarkdownRenderer>{markdown}</MarkdownRenderer>\n </div>\n );\n}\n\nconst MENTION = /\\[\\[([^\\]]+)\\]\\]/g;\n\n/** A note's text with each resolved `[[Page Name]]` linking to its page; unresolved names stay plain. */\nfunction NoteText({ note }: { note: NoteSummary }) {\n const parts: ReactNode[] = [];\n let last = 0;\n for (const match of note.text.matchAll(MENTION)) {\n const ref = (match[1] ?? '').trim();\n // Own string values only: `[[constructor]]` must not read Object.prototype.\n const mentioned = note.mentions && Object.hasOwn(note.mentions, ref) ? note.mentions[ref] : undefined;\n const pageId = typeof mentioned === 'string' ? mentioned : undefined;\n parts.push(note.text.slice(last, match.index));\n parts.push(\n pageId ? (\n <KnowledgePageLink\n key={match.index}\n pageId={pageId}\n className=\"text-foreground underline decoration-dotted underline-offset-2 hover:decoration-solid\"\n >\n {ref}\n </KnowledgePageLink>\n ) : (\n <span key={match.index} className=\"text-foreground\" data-testid=\"knowledge-unresolved-mention\">\n {ref}\n </span>\n ),\n );\n last = match.index + match[0].length;\n }\n parts.push(note.text.slice(last));\n return <>{parts}</>;\n}\n\nfunction NoteList({ notes }: { notes: NoteSummary[] }) {\n return (\n <ul className=\"flex flex-col gap-1\">\n {notes.map(note => (\n <li key={note.id} className=\"flex flex-col\">\n <Txt as=\"span\" variant=\"body\">\n <NoteText note={note} />\n </Txt>\n {note.page || note.author ? (\n <Meta>\n {note.page ? <PageLink page={note.page} /> : null}\n {note.page && note.author ? ' · ' : null}\n {note.author}\n </Meta>\n ) : null}\n </li>\n ))}\n </ul>\n );\n}\n\nexport interface KnowledgeCard {\n title: string;\n detail?: string;\n body: ReactNode;\n}\n\n/** What each Knowledge tool's settled result says, or null when the shape isn't one we know. */\nexport function knowledgeCard(toolName: string, input: unknown, output: unknown): KnowledgeCard | null {\n if (!isRecord(output)) return null;\n const args = isRecord(input) ? input : {};\n switch (toolName) {\n case 'knowledge_search': {\n if (!Array.isArray(output.results)) return null;\n const hits = output.results.filter(isRecord);\n return {\n title: 'Searched Knowledge',\n detail: str(args.query),\n body: hits.length ? (\n <ul className=\"flex flex-col gap-1.5\">\n {hits.map((hit, index) => {\n const page = asPage(hit.page);\n const [note] = asNotes([hit.note]);\n return page ? (\n <li key={`${page.id}-${note?.id ?? index}`} className=\"flex flex-col\">\n <PageLine page={page} />\n {note ? (\n <Meta>\n <NoteText note={note} />\n </Meta>\n ) : null}\n </li>\n ) : null;\n })}\n </ul>\n ) : (\n <Meta>No matches</Meta>\n ),\n };\n }\n case 'knowledge_read': {\n const page = asPage(output.page);\n if (!page) {\n if (!Array.isArray(output.scopes)) return null;\n const scopes = output.scopes.filter(isRecord);\n return {\n title: 'Listed Knowledge scopes',\n body: (\n <ul className=\"flex flex-col gap-1\">\n {scopes.map(scope => (\n <li key={String(scope.address)}>\n <Txt as=\"span\" variant=\"body\">\n {String(scope.name)}\n </Txt>{' '}\n <Meta>{String(scope.address)}</Meta>\n </li>\n ))}\n </ul>\n ),\n };\n }\n const notes = asNotes(output.notes);\n const children = Array.isArray(output.children)\n ? output.children.map(asPage).filter((child): child is PageSummary => child !== undefined)\n : [];\n const mentionedIn = asNotes(output.mentionedIn);\n const childScopes = Array.isArray(output.childScopes) ? output.childScopes.filter(isRecord) : [];\n return {\n title: 'Read',\n detail: page.name,\n body: (\n <div className=\"flex flex-col gap-2\">\n <PageLine page={page} />\n {page.description ? <Meta>{page.description}</Meta> : null}\n {page.body ? <Body markdown={page.body} /> : null}\n {notes.length ? <NoteList notes={notes} /> : null}\n {children.length ? <Meta>Child pages: {children.map(child => child.name).join(', ')}</Meta> : null}\n {childScopes.length ? (\n <Meta>\n Child scopes:{' '}\n {childScopes\n .map(scope =>\n scope.address ? `${String(scope.name)} (${String(scope.address)})` : String(scope.name),\n )\n .join(', ')}\n </Meta>\n ) : null}\n {mentionedIn.length ? (\n <div className=\"flex flex-col gap-1\">\n <Meta>Mentioned in</Meta>\n <NoteList notes={mentionedIn} />\n </div>\n ) : null}\n </div>\n ),\n };\n }\n case 'knowledge_page': {\n const page = asPage(output.page);\n if (!page) return null;\n const op = str(args.op);\n if (op === 'delete') {\n // The page no longer exists, so name it without a link.\n return { title: 'Deleted page', detail: page.name, body: <PageLine page={page} linked={false} /> };\n }\n const title =\n op === 'move' ? 'Moved page' : op === 'merge' ? 'Merged page' : args.page ? 'Updated page' : 'Created page';\n const body = str(args.body);\n const description = str(args.description);\n return {\n title,\n detail: page.name,\n body: (\n <div className=\"flex flex-col gap-2\">\n <PageLine page={page} />\n {op === 'merge' && str(args.page) ? <Meta>Merged {str(args.page)} into this page</Meta> : null}\n {typeof page.version === 'number' ? <Meta>Version {page.version}</Meta> : null}\n {description ? <Meta>{description}</Meta> : null}\n {body ? <Body markdown={body} /> : null}\n </div>\n ),\n };\n }\n case 'knowledge_note': {\n if (str(output.removed)) return { title: 'Removed note', body: <Meta>Note {String(output.removed)}</Meta> };\n const [note] = asNotes([output.note]);\n if (!note) return null;\n const pageRef = str(args.page);\n const pageId = str(output.page);\n return {\n title: str(args.op) === 'restamp' ? 'Restamped note' : 'Added note',\n detail: pageRef,\n body: (\n <div className=\"flex flex-col gap-1\">\n <Txt as=\"span\" variant=\"body\">\n <NoteText note={note} />\n </Txt>\n {pageId ? (\n <Meta>\n On <PageLink page={{ id: pageId, name: pageRef ?? 'the page' }} />\n </Meta>\n ) : null}\n </div>\n ),\n };\n }\n case 'knowledge_pin': {\n const pageId = str(output.page);\n if (!pageId || !Array.isArray(output.audience)) return null;\n const pageRef = str(args.page);\n const audience = output.audience.filter((entry): entry is string => typeof entry === 'string');\n return {\n title: str(args.op) === 'unpin' ? 'Unpinned page' : 'Pinned page',\n detail: pageRef,\n body: (\n <div className=\"flex flex-col gap-1\">\n <Meta>\n <PageLink page={{ id: pageId, name: pageRef ?? 'the page' }} />\n </Meta>\n <Meta>{audience.length ? `Pinned for ${audience.join(', ')}` : 'No longer pinned for anyone'}</Meta>\n </div>\n ),\n };\n }\n default:\n return null;\n }\n}\n\nexport interface KnowledgeToolBadgeProps extends Omit<ToolApprovalRequest, 'toolCalled'> {\n card: KnowledgeCard;\n metadata?: MessageMetadata;\n status?: ActivityStatus;\n}\n\nexport const KnowledgeToolBadge = ({\n card,\n toolName,\n metadata,\n toolCallId,\n toolApprovalMetadata,\n isNetwork,\n status = 'idle',\n}: KnowledgeToolBadgeProps) => (\n <ToolApprovalBadge\n approval={{\n toolCalled: true,\n toolCallId,\n toolApprovalMetadata,\n toolName,\n isNetwork,\n isGenerateMode: metadata?.mode === 'generate',\n }}\n data-testid=\"knowledge-tool-badge\"\n icon={<BookOpen aria-hidden />}\n title={card.title}\n detail={card.detail}\n status={status}\n >\n {card.body}\n </ToolApprovalBadge>\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../../../src/domains/chat/tools/badges/knowledge-tool-badge';
|