@xenosystem/agent-conversation 0.1.41 → 0.1.43
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 +11 -2
- package/dist/components/agent/AgentView.js.map +1 -1
- package/dist/components/agent/transcript/ThreadScrubber.d.ts +45 -0
- package/dist/components/agent/transcript/ThreadScrubber.d.ts.map +1 -0
- package/dist/components/agent/transcript/ThreadScrubber.js +137 -0
- package/dist/components/agent/transcript/ThreadScrubber.js.map +1 -0
- package/dist/components/agent/transcript/Transcript.js +1 -1
- package/dist/components/agent/transcript/Transcript.js.map +1 -1
- package/package.json +5 -5
- package/src/transcript.css +34 -0
|
@@ -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":"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"}
|
|
@@ -33,6 +33,7 @@ import { commandPreviewText, compactCommandPreview, deriveToolInteractionState,
|
|
|
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
35
|
import { CitationChip, parseCitationHref, remarkCitations } from './transcript/citations.js';
|
|
36
|
+
import { ThreadScrubber, firstLineOf } from './transcript/ThreadScrubber.js';
|
|
36
37
|
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';
|
|
37
38
|
import { useAskActions } from './transcript/useAskActions.js';
|
|
38
39
|
import { deriveStepRow } from './transcript/stepModel.js';
|
|
@@ -4226,6 +4227,14 @@ export function AgentView(props) {
|
|
|
4226
4227
|
const threadRef = useRef(null);
|
|
4227
4228
|
const pinnedRef = useRef(true);
|
|
4228
4229
|
const [toBottom, setToBottom] = useState({ show: false, bottom: 0 });
|
|
4230
|
+
// the thread map's ticks come from state, never the DOM (a lazy-loaded thread must not shorten the map)
|
|
4231
|
+
const scrubberTurns = useMemo(() => runtimeProjectedMessages
|
|
4232
|
+
.filter((msg) => msg.role === 'user' || msg.role === 'assistant')
|
|
4233
|
+
.map((msg) => {
|
|
4234
|
+
const model = (msg.model || '').replace(/^local:/, '');
|
|
4235
|
+
const worked = (msg.toolCalls?.length ?? 0) > 0;
|
|
4236
|
+
return { id: msg.id, role: msg.role, label: msg.role === 'user' ? 'You' : (cloudModels.find((entry) => entry.id === msg.model)?.name || model || 'Agent'), firstLine: firstLineOf(msg.content || ''), marked: worked };
|
|
4237
|
+
}), [runtimeProjectedMessages, cloudModels]);
|
|
4229
4238
|
useEffect(() => {
|
|
4230
4239
|
const scroller = messagesScrollRef.current;
|
|
4231
4240
|
if (!scroller)
|
|
@@ -7368,7 +7377,7 @@ export function AgentView(props) {
|
|
|
7368
7377
|
? messageModel.slice('local:'.length)
|
|
7369
7378
|
: cloudModels.find((entry) => entry.id === messageModel)?.name || cloudModelName(messageModel))
|
|
7370
7379
|
: null;
|
|
7371
|
-
return (_jsxs(React.Fragment, { children: [startsDay && _jsx("div", { className: "xa-sep xa-label", children: dayLabel }), msg.role === 'user' ? (_jsxs("div", { className: "xa-user", children: [editingMsgId === msg.id ? (_jsxs("div", { className: "rounded-lg bg-black/40 border border-white/[0.08] p-2", children: [_jsx("div", { className: "rounded-[4px] border border-white/[0.1] bg-white/[0.04] overflow-hidden", children: _jsx("textarea", { ref: el => { if (el && !el.dataset.focused) {
|
|
7380
|
+
return (_jsxs(React.Fragment, { children: [startsDay && _jsx("div", { className: "xa-sep xa-label", children: dayLabel }), msg.role === 'user' ? (_jsxs("div", { className: "xa-user", "data-turn": msg.id, children: [editingMsgId === msg.id ? (_jsxs("div", { className: "rounded-lg bg-black/40 border border-white/[0.08] p-2", children: [_jsx("div", { className: "rounded-[4px] border border-white/[0.1] bg-white/[0.04] overflow-hidden", children: _jsx("textarea", { ref: el => { if (el && !el.dataset.focused) {
|
|
7372
7381
|
el.focus();
|
|
7373
7382
|
el.dataset.focused = '1';
|
|
7374
7383
|
el.style.height = 'auto';
|
|
@@ -7629,7 +7638,7 @@ export function AgentView(props) {
|
|
|
7629
7638
|
else {
|
|
7630
7639
|
abort(conversationId || undefined);
|
|
7631
7640
|
clearAllSuggestions();
|
|
7632
|
-
} } })] })] }), _jsx(Tip, { dockRef: dockRef, suspended: !!typedToken || moreOpen || modelListOpen || effortListOpen || acpCliListOpen || acpModelListOpen }), _jsx(TypedMenu, { open: !!typedToken, token: typedToken, sections: typedSections, onTake: takeTyped, onClose: () => setTypedToken(null), boxRef: boxRef, dock: dockEl })] })] }), _jsx("button", { type: "button", className: `xa-tobottom${toBottom.show ? ' xa-show' : ''}`, "data-tobottom": true, "aria-label": "Jump to the latest", tabIndex: toBottom.show ? 0 : -1, style: { bottom: toBottom.bottom }, onClick: jumpToLatest, children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "square", "aria-hidden": "true", children: _jsx("path", { d: "M6 9l6 6 6-6" }) }) })] }));
|
|
7641
|
+
} } })] })] }), _jsx(Tip, { dockRef: dockRef, suspended: !!typedToken || moreOpen || modelListOpen || effortListOpen || acpCliListOpen || acpModelListOpen }), _jsx(TypedMenu, { open: !!typedToken, token: typedToken, sections: typedSections, onTake: takeTyped, onClose: () => setTypedToken(null), boxRef: boxRef, dock: dockEl })] })] }), _jsx(ThreadScrubber, { turns: scrubberTurns, scrollerRef: messagesScrollRef, style: { bottom: toBottom.bottom + 8 } }), _jsx("button", { type: "button", className: `xa-tobottom${toBottom.show ? ' xa-show' : ''}`, "data-tobottom": true, "aria-label": "Jump to the latest", tabIndex: toBottom.show ? 0 : -1, style: { bottom: toBottom.bottom }, onClick: jumpToLatest, children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "square", "aria-hidden": "true", children: _jsx("path", { d: "M6 9l6 6 6-6" }) }) })] }));
|
|
7633
7642
|
}
|
|
7634
7643
|
const ACP_MODEL_ID = /^[A-Za-z0-9._:/+-]{1,120}$/;
|
|
7635
7644
|
/** `@` names a conversation the way the prototype does — its title, slugged. */
|