lemma-sdk 0.2.27 → 0.2.28
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.
|
@@ -772,7 +772,7 @@ function ToolDetailsPanel({ toolName, args, state, result, onNavigateResource, r
|
|
|
772
772
|
}
|
|
773
773
|
return (_jsxs("div", { className: "lemma-assistant-tool-details-panel", children: [_jsxs("div", { className: "lemma-assistant-tool-details-header", children: [_jsxs("div", { className: "lemma-assistant-tool-details-heading", children: [_jsx("div", { className: "lemma-assistant-tool-details-title", children: primaryLabel }), hasCommentLabel ? (_jsx("div", { className: "lemma-assistant-tool-details-meta", children: toolDisplayName })) : null] }), canNavigate && onNavigateResource ? (_jsx("button", { type: "button", onClick: () => onNavigateResource(resultData.resourceType, resultData.resourceId, resultData), className: "lemma-assistant-tool-details-link", children: "Open" })) : null] }), _jsx("div", { className: "lemma-assistant-tool-details-stack", children: _jsxs("div", { className: "lemma-assistant-tool-details-section", children: [_jsx("dl", { className: "lemma-assistant-tool-details-list", children: detailRows.map((row, index) => (_jsxs("div", { className: "lemma-assistant-tool-details-list-item", children: [_jsx("dt", { className: "lemma-assistant-tool-details-key", children: row.label }), _jsx("dd", { className: "lemma-assistant-tool-details-value", children: row.value })] }, `${row.label}-${index}`))) }), hiddenInputCount > 0 ? (_jsxs("div", { className: "lemma-assistant-tool-details-more", children: ["+", hiddenInputCount, " more input field", hiddenInputCount === 1 ? "" : "s"] })) : null, hiddenOutputCount > 0 ? (_jsxs("div", { className: "lemma-assistant-tool-details-more", children: ["+", hiddenOutputCount, " more output field", hiddenOutputCount === 1 ? "" : "s"] })) : null, _jsxs("div", { className: "lemma-assistant-tool-details-raw-row", children: [_jsxs("details", { className: "lemma-assistant-tool-details-raw", children: [_jsx("summary", { className: "lemma-assistant-tool-details-raw-summary", children: "Raw input JSON" }), _jsx("div", { className: "lemma-assistant-tool-details-code", children: _jsx("pre", { className: "lemma-assistant-tool-details-code-text", children: JSON.stringify(args, null, 2) }) })] }), Object.keys(resultData).length > 0 ? (_jsxs("details", { className: "lemma-assistant-tool-details-raw", children: [_jsx("summary", { className: "lemma-assistant-tool-details-raw-summary", children: "Raw output JSON" }), _jsx("div", { className: "lemma-assistant-tool-details-code", children: _jsx("pre", { className: "lemma-assistant-tool-details-code-text", children: JSON.stringify(resultData, null, 2) }) })] })) : null] })] }) })] }));
|
|
774
774
|
}
|
|
775
|
-
function InlineToolCall({ invocation, isSelected, onClick, }) {
|
|
775
|
+
function InlineToolCall({ invocation, isSelected, onClick, showStem = true, }) {
|
|
776
776
|
const resultData = (invocation.result || {});
|
|
777
777
|
const isExecuting = invocation.state !== "result";
|
|
778
778
|
const isComplete = invocation.state === "result" && resultData.success !== false;
|
|
@@ -785,7 +785,8 @@ function InlineToolCall({ invocation, isSelected, onClick, }) {
|
|
|
785
785
|
: isFailed
|
|
786
786
|
? (typeof resultData.error === "string" ? resultData.error : "Tool failed")
|
|
787
787
|
: (formatToolResultSummary(invocation.toolName, invocation.args, resultData) || "Completed");
|
|
788
|
-
|
|
788
|
+
const showSummary = summary !== "Completed";
|
|
789
|
+
return (_jsxs("button", { type: "button", onClick: onClick, className: "lemma-assistant-inline-tool-call", "data-state": isExecuting ? "executing" : isComplete ? "complete" : isFailed ? "failed" : "idle", "data-selected": isSelected ? "true" : "false", children: [_jsxs("span", { className: "lemma-assistant-inline-tool-call-rail", "aria-hidden": "true", children: [_jsx("span", { className: "lemma-assistant-inline-tool-call-node" }), showStem ? _jsx("span", { className: "lemma-assistant-inline-tool-call-stem" }) : null] }), _jsxs("span", { className: "lemma-assistant-inline-tool-call-main", children: [_jsxs("span", { className: "lemma-assistant-inline-tool-call-head", children: [_jsx("span", { className: "lemma-assistant-inline-tool-call-name", children: primaryLabel }), _jsx("span", { className: "lemma-assistant-inline-tool-call-status", children: statusLabel }), _jsx("span", { className: "lemma-assistant-inline-tool-call-caret", children: isSelected ? "⌄" : "›" })] }), _jsx("span", { className: "lemma-assistant-inline-tool-call-meta", children: toolMeta }), showSummary ? _jsx("span", { className: "lemma-assistant-inline-tool-call-summary", children: summary }) : null] })] }));
|
|
789
790
|
}
|
|
790
791
|
function ToolActivityRollup({ detailParts, onNavigateResource, renderToolInvocation, message, activeConversationId, }) {
|
|
791
792
|
const [activeToolCallId, setActiveToolCallId] = useState(null);
|
|
@@ -800,6 +801,7 @@ function ToolActivityRollup({ detailParts, onNavigateResource, renderToolInvocat
|
|
|
800
801
|
?.toolInvocation;
|
|
801
802
|
const failedCount = toolParts.filter((part) => (part.toolInvocation.state === "result" && part.toolInvocation.result?.success === false)).length;
|
|
802
803
|
const isWorking = !!activeInvocation || reasoningParts.some((part) => part.state === "streaming");
|
|
804
|
+
const isSingleDetail = detailParts.length === 1;
|
|
803
805
|
const completionSummary = toolParts.length > 0
|
|
804
806
|
? `Completed ${toolParts.length} tool${toolParts.length === 1 ? "" : "s"}`
|
|
805
807
|
: totalThoughtDurationMs > 0
|
|
@@ -815,7 +817,7 @@ function ToolActivityRollup({ detailParts, onNavigateResource, renderToolInvocat
|
|
|
815
817
|
: `${totalThoughtDurationMs > 0
|
|
816
818
|
? `Worked for ${formatDurationCompact(totalThoughtDurationMs)}`
|
|
817
819
|
: `Worked through ${detailParts.length} step${detailParts.length === 1 ? "" : "s"}`}${failedCount > 0 ? ` · ${failedCount} failed` : ""}`;
|
|
818
|
-
return (_jsxs("div", { className: "lemma-assistant-tool-rollup", children: [shouldCollapse ? (_jsxs("button", { type: "button", className: "lemma-assistant-tool-rollup-banner", onClick: () => setIsExpanded((prev) => !prev), "aria-expanded": isExpanded, "aria-label": isExpanded ? "Hide tool activity details" : "Show tool activity details", children: [_jsx("span", { className: "lemma-assistant-tool-rollup-banner-line", "aria-hidden": "true" }), _jsxs("span", { className: "lemma-assistant-tool-rollup-banner-copy", children: [isWorking ? _jsx("span", { className: "lemma-assistant-tool-rollup-dot", "aria-hidden": "true" }) : null, _jsx("span", { className: cx("lemma-assistant-tool-rollup-banner-label", isWorking && "lemma-assistant-tool-rollup-banner-label-working"), children: collapsedSummary }), _jsx("span", { className: "lemma-assistant-tool-rollup-banner-caret", "data-expanded": isExpanded ? "true" : "false", "aria-hidden": "true", children: "\u203A" })] }), _jsx("span", { className: "lemma-assistant-tool-rollup-banner-line", "aria-hidden": "true" })] })) : (_jsxs("div", { className: "lemma-assistant-tool-rollup-header", children: [isWorking ? _jsx("span", { className: "lemma-assistant-tool-rollup-dot" }) : null, _jsx("span", { className: cx("lemma-assistant-tool-rollup-summary", isWorking && "lemma-assistant-tool-rollup-summary-working"), children: summary })] })), !shouldCollapse || isExpanded ? (_jsx("div", { className: "lemma-assistant-tool-rollup-details", children: detailParts.map((part) => {
|
|
820
|
+
return (_jsxs("div", { className: "lemma-assistant-tool-rollup", "data-single": isSingleDetail ? "true" : "false", children: [shouldCollapse ? (_jsxs("button", { type: "button", className: "lemma-assistant-tool-rollup-banner", onClick: () => setIsExpanded((prev) => !prev), "aria-expanded": isExpanded, "aria-label": isExpanded ? "Hide tool activity details" : "Show tool activity details", children: [_jsx("span", { className: "lemma-assistant-tool-rollup-banner-line", "aria-hidden": "true" }), _jsxs("span", { className: "lemma-assistant-tool-rollup-banner-copy", children: [isWorking ? _jsx("span", { className: "lemma-assistant-tool-rollup-dot", "aria-hidden": "true" }) : null, _jsx("span", { className: cx("lemma-assistant-tool-rollup-banner-label", isWorking && "lemma-assistant-tool-rollup-banner-label-working"), children: collapsedSummary }), _jsx("span", { className: "lemma-assistant-tool-rollup-banner-caret", "data-expanded": isExpanded ? "true" : "false", "aria-hidden": "true", children: "\u203A" })] }), _jsx("span", { className: "lemma-assistant-tool-rollup-banner-line", "aria-hidden": "true" })] })) : (!isSingleDetail ? (_jsxs("div", { className: "lemma-assistant-tool-rollup-header", children: [isWorking ? _jsx("span", { className: "lemma-assistant-tool-rollup-dot" }) : null, _jsx("span", { className: cx("lemma-assistant-tool-rollup-summary", isWorking && "lemma-assistant-tool-rollup-summary-working"), children: summary })] })) : null), !shouldCollapse || isExpanded ? (_jsx("div", { className: cx("lemma-assistant-tool-rollup-details", isSingleDetail && "lemma-assistant-tool-rollup-details-single"), children: detailParts.map((part, partIndex) => {
|
|
819
821
|
if (part.type === "reasoning") {
|
|
820
822
|
return (_jsxs("div", { className: "lemma-assistant-tool-rollup-thinking", children: [_jsx("div", { className: "lemma-assistant-tool-rollup-thinking-title", children: part.state === "streaming"
|
|
821
823
|
? "Internal note"
|
|
@@ -823,7 +825,7 @@ function ToolActivityRollup({ detailParts, onNavigateResource, renderToolInvocat
|
|
|
823
825
|
}
|
|
824
826
|
const invocation = part.toolInvocation;
|
|
825
827
|
const isSelected = activeToolCallId === invocation.toolCallId;
|
|
826
|
-
return (_jsxs("div", { className: "lemma-assistant-tool-rollup-item", children: [_jsx(InlineToolCall, { invocation: invocation, isSelected: isSelected, onClick: () => setActiveToolCallId((prev) => (prev === invocation.toolCallId ? null : invocation.toolCallId)) }), isSelected ? (_jsx(ToolDetailsPanel, { toolName: invocation.toolName, args: invocation.args, state: invocation.state, result: invocation.result, onNavigateResource: onNavigateResource, renderToolInvocation: renderToolInvocation, message: message, activeConversationId: activeConversationId })) : null] }, part.id));
|
|
828
|
+
return (_jsxs("div", { className: "lemma-assistant-tool-rollup-item", children: [_jsx(InlineToolCall, { invocation: invocation, isSelected: isSelected, showStem: partIndex < detailParts.length - 1, onClick: () => setActiveToolCallId((prev) => (prev === invocation.toolCallId ? null : invocation.toolCallId)) }), isSelected ? (_jsx(ToolDetailsPanel, { toolName: invocation.toolName, args: invocation.args, state: invocation.state, result: invocation.result, onNavigateResource: onNavigateResource, renderToolInvocation: renderToolInvocation, message: message, activeConversationId: activeConversationId })) : null] }, part.id));
|
|
827
829
|
}) })) : null] }));
|
|
828
830
|
}
|
|
829
831
|
function ShowWidgetToolCard({ invocation, onSendPrompt, }) {
|
package/dist/react/styles.css
CHANGED
|
@@ -1547,6 +1547,12 @@
|
|
|
1547
1547
|
border-left: 1px solid color-mix(in srgb, var(--border-default) 86%, transparent);
|
|
1548
1548
|
}
|
|
1549
1549
|
|
|
1550
|
+
.lemma-assistant-tool-rollup-details-single {
|
|
1551
|
+
margin-left: 0;
|
|
1552
|
+
padding-left: 0;
|
|
1553
|
+
border-left: 0;
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1550
1556
|
.lemma-assistant-tool-details-panel {
|
|
1551
1557
|
margin-top: 6px;
|
|
1552
1558
|
padding: 10px 12px;
|