@xenosystem/agent-conversation 0.1.38 → 0.1.40
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/components/agent/AgentView.d.ts.map +1 -1
- package/dist/components/agent/AgentView.js +14 -3
- package/dist/components/agent/AgentView.js.map +1 -1
- package/dist/components/agent/composer/Composer.d.ts +1 -1
- package/dist/components/agent/transcript/Transcript.d.ts +22 -3
- package/dist/components/agent/transcript/Transcript.d.ts.map +1 -1
- package/dist/components/agent/transcript/Transcript.js +27 -23
- package/dist/components/agent/transcript/Transcript.js.map +1 -1
- package/dist/components/agent/transcript/citations.d.ts +66 -0
- package/dist/components/agent/transcript/citations.d.ts.map +1 -0
- package/dist/components/agent/transcript/citations.js +110 -0
- package/dist/components/agent/transcript/citations.js.map +1 -0
- package/dist/components/agent/transcript/turnModel.d.ts +13 -6
- package/dist/components/agent/transcript/turnModel.d.ts.map +1 -1
- package/dist/components/agent/transcript/turnModel.js +13 -1
- package/dist/components/agent/transcript/turnModel.js.map +1 -1
- package/package.json +5 -5
- package/src/transcript.css +29 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentView.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentView.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAMhF,OAAO,EAA2N,KAAK,YAAY,EAA2N,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"AgentView.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentView.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAMhF,OAAO,EAA2N,KAAK,YAAY,EAA2N,MAAM,gCAAgC,CAAA;AAiDpf,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AACvH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAA2B,MAAM,4BAA4B,CAAA;AA0BjG,OAAO,EAA6C,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAA;AAWxI,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,iBAAiB,CAAC,EAAE,0BAA0B,CAAA;IAC9C,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,KAAK,IAAI,CAAA;IACtI,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,aAAa,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,oBAAoB,CAAC,EAAE,MAAM,CAAA;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,eAAe,EAAE,MAAM,CAAA;QACvB,MAAM,EAAE,MAAM,CAAA;KACf,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpJ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjG,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/G,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC3B,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpI,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvE,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/F,0BAA0B,CAAC,EAAE,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,OAAO,CAAC;QACZ,iBAAiB,CAAC,EAAE;YAClB,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,sBAAsB,EAAE,MAAM,CAAA;KAC/B,CAAC,CAAA;IACF,kCAAkC,CAAC,EAAE,CAAC,MAAM,EAAE;QAC5C,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;QACxB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,KAAK,OAAO,CAAC;QACZ,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,4BAA4B,CAAC,EAAE,CAAC,MAAM,EAAE;QACtC,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;KAChB,KAAK,IAAI,CAAA;IACV,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAA;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAChF,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAC3F;AAmsGD,UAAU,2BAA2B;IACnC,oBAAoB,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAA;CACrD;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,GACvB,EAAE;IACD,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAA;IACvD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IACzF,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACjD,sBAAsB,CAAC,EAAE,2BAA2B,CAAA;CACrD,4BAm5BA;AAqHD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBAopM9C"}
|
|
@@ -32,6 +32,7 @@ import { AssistantTurnErrorNotice, AssistantTurnStatusNotice } from './Assistant
|
|
|
32
32
|
import { commandPreviewText, compactCommandPreview, deriveToolInteractionState, hideDuplicateToolTitle, isCommandToolCall } from './toolCardDisplay.js';
|
|
33
33
|
import { deriveToolCallFilePath, humanizeToolName, isToolDisplayNoise, deriveToolCardDisplay, summarizeCommand, parseStructuredCommandContent, formatToolDuration, countTextLines, deriveEditorDiffStats, deriveToolDiffStats, deriveToolCallFileName, deriveFileToolPrimaryText, deriveFileToolActionLabel, buildInlineDiffPreviewLines, mapWorkspaceChoice, deriveTerminalToolOutput, readToolStringParam, isPseudoPermissionDirectory, deriveShellCommandNames, deriveApprovalCardInfo, toolCallLabel, buildSurfaceApprovalRule, canBuildSurfaceApprovalRule, } from './toolCallDerive.js';
|
|
34
34
|
import { AgentsTray, BackgroundTray, Glyph, TasksTray, TranscriptTurn } from './transcript/Transcript.js';
|
|
35
|
+
import { CitationChip, parseCitationHref, remarkCitations } from './transcript/citations.js';
|
|
35
36
|
import { CtxAction, CtxDiff, CtxGrow, CtxMeter, CtxSeg, CtxSplit, CtxStrip, CtxVr, EffortCells, LaneGroup, ModeSegment, PermChip, ComposerDock, DockIcon, Notice, SendSquare, Tiles, Tip, TurnStatus, TypedMenu, XaMenu, XaMenuSearch, XaRow, postureOf, tokenAt, } from './composer/Composer.js';
|
|
36
37
|
import { useAskActions } from './transcript/useAskActions.js';
|
|
37
38
|
import { deriveStepRow } from './transcript/stepModel.js';
|
|
@@ -214,6 +215,10 @@ function findMessageFileReference(candidate, refs) {
|
|
|
214
215
|
return normalizedCandidate === normalizedPath || normalizedCandidate === normalizedLabel;
|
|
215
216
|
}) || null;
|
|
216
217
|
}
|
|
218
|
+
/** Favicons come through the platform's own proxy — never the cited site directly (no IP leak, no hotlink refusals). */
|
|
219
|
+
function agentFaviconUrl(domain) {
|
|
220
|
+
return `https://xenosystem.ai/api/favicon?domain=${encodeURIComponent(domain)}`;
|
|
221
|
+
}
|
|
217
222
|
function agentMarkdownUrlTransform(url) {
|
|
218
223
|
return resolveMarkdownLocalFilePath(url) ? url : defaultUrlTransform(url);
|
|
219
224
|
}
|
|
@@ -6530,12 +6535,18 @@ export function AgentView(props) {
|
|
|
6530
6535
|
const only = nodes.length === 1 ? nodes[0] : null;
|
|
6531
6536
|
return React.isValidElement(only) && only.type === 'p' ? only.props.children : children;
|
|
6532
6537
|
};
|
|
6533
|
-
const renderAssistantMarkdown = (text, messageFileRefs) => (_jsx(_Fragment, { children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], urlTransform: agentMarkdownUrlTransform, components: {
|
|
6538
|
+
const renderAssistantMarkdown = (text, messageFileRefs, sources = []) => (_jsx(_Fragment, { children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm, remarkCitations], urlTransform: agentMarkdownUrlTransform, components: {
|
|
6534
6539
|
pre: ({ children }) => _jsx(_Fragment, { children: children }),
|
|
6535
6540
|
// a quote of one paragraph is one line of quoted words; the extra `<p>` markdown puts
|
|
6536
6541
|
// inside it is grammar, not structure, and it takes the paragraph's spacing with it
|
|
6537
6542
|
blockquote: ({ children }) => _jsx("blockquote", { children: unwrapSoleParagraph(children) }),
|
|
6538
|
-
a: ({ href, children }) =>
|
|
6543
|
+
a: ({ href, children }) => {
|
|
6544
|
+
// a `[n]` the model cited — the chip after the claim, the sources on hover (see citations.tsx)
|
|
6545
|
+
const citedIds = parseCitationHref(href);
|
|
6546
|
+
if (citedIds)
|
|
6547
|
+
return _jsx(CitationChip, { ids: citedIds, sources: sources, faviconUrl: agentFaviconUrl, onOpen: (url) => getAgentPlatformBridge()?.window?.openExternal(url), children: children });
|
|
6548
|
+
return (_jsx(AgentMarkdownLink, { href: href, fileReferences: messageFileRefs, onOpenEditorPath: props.onOpenEditorPath, allowedDirectories: effectiveAllowedDirectories, conversationId: conversationId || undefined, children: children }));
|
|
6549
|
+
},
|
|
6539
6550
|
code: ({ className, children, node, ...codeProps }) => {
|
|
6540
6551
|
const isBlock = className || (node?.position && node.position.start?.line !== node.position.end?.line);
|
|
6541
6552
|
if (isBlock) {
|
|
@@ -7414,7 +7425,7 @@ export function AgentView(props) {
|
|
|
7414
7425
|
if (!branchInfo)
|
|
7415
7426
|
return null;
|
|
7416
7427
|
return (_jsxs(_Fragment, { children: [_jsx("span", { className: "xa-vr" }), _jsx("button", { type: "button", className: "xa-b", "aria-label": "Previous branch", onClick: () => switchBranch(conversationId, msg.id, 'prev'), disabled: isBusy, children: _jsx("span", { style: { display: 'inline-flex', transform: 'scaleX(-1)' }, children: _jsx(Glyph, { name: "chevron-right", size: 11 }) }) }), _jsx("span", { className: "xa-t xa-num", children: `${branchInfo.current}/${branchInfo.total}` }), _jsx("button", { type: "button", className: "xa-b", "aria-label": "Next branch", onClick: () => switchBranch(conversationId, msg.id, 'next'), disabled: isBusy, children: _jsx(Glyph, { name: "chevron-right", size: 11 }) })] }));
|
|
7417
|
-
})()] })] })) : (_jsx(TranscriptTurn, { msg: msg, stepsMode: stepsMode, actions: transcriptActionsFor(msg, msgIdx), renderMarkdown: (text) => renderAssistantMarkdown(text, messageFileRefs), tasks: tasksForMessage(msg), model: displayMessageModel ?? undefined, latest: msgIdx === runtimeProjectedMessages.length - 1 }))] }, msg.id));
|
|
7428
|
+
})()] })] })) : (_jsx(TranscriptTurn, { msg: msg, stepsMode: stepsMode, actions: transcriptActionsFor(msg, msgIdx), renderMarkdown: (text, context) => renderAssistantMarkdown(text, messageFileRefs, context.sources), faviconUrl: agentFaviconUrl, tasks: tasksForMessage(msg), model: displayMessageModel ?? undefined, latest: msgIdx === runtimeProjectedMessages.length - 1 }))] }, msg.id));
|
|
7418
7429
|
}), blockedNarrationVisible && (_jsx("div", { className: "flex justify-start", children: _jsx("div", { className: "w-full", children: _jsx(ThinkingIndicator, { mode: "response" }) }) })), blockedPromptVisible && (_jsx("div", { className: "flex justify-start -mt-0.5", children: _jsx("div", { className: "w-full", children: _jsxs("div", { className: "-mx-1.5 rounded-[4px] border border-white/[0.08] bg-white/[0.02] px-3 py-2 flex items-center justify-between gap-3", children: [_jsx("p", { className: "text-[12px] text-white/50 whitespace-nowrap overflow-hidden text-ellipsis flex-1 min-w-0", children: blockedFileActionPrompt.reason === 'capability'
|
|
7419
7430
|
? 'Enable file writing for this agent before creating this file?'
|
|
7420
7431
|
: 'Choose a directory for this conversation before continuing?' }), _jsxs("div", { className: "flex items-center gap-1.5 flex-shrink-0", children: [_jsx("button", { onClick: () => {
|