@steerable/agent-ui 0.6.12 → 0.6.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ToolExecutionCard.d.ts","sourceRoot":"","sources":["../../src/cards/ToolExecutionCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AA8BtE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;CACrD;AAiCD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsE9D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ToolExecutionCard.d.ts","sourceRoot":"","sources":["../../src/cards/ToolExecutionCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AA8BtE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;CACrD;AAiCD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8E9D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -59,7 +59,7 @@ export const ToolExecutionCard = ({ payload, className, defaultExpanded = false,
59
59
  'steerable-tool-execution rounded-lg border border-[var(--agent-border,#e5e7eb)] bg-[var(--agent-card-bg,#fff)] text-xs',
60
60
  className,
61
61
  ].filter(Boolean).join(' '), children: [_jsxs("button", { type: "button", onClick: () => expandable && setExpanded((v) => !v), className: "flex w-full items-center gap-2 px-3 py-2 text-left", "aria-expanded": expanded, "aria-disabled": !expandable, children: [expandable &&
62
- (expanded ? _jsx(ChevronDownIcon, { size: 12 }) : _jsx(ChevronRightIcon, { size: 12 })), _jsx(ZapIcon, { size: 12, className: "text-[var(--agent-muted-foreground,#6b7280)]" }), _jsx("span", { className: "font-medium text-[var(--agent-foreground,#111827)]", children: payload.name }), payload.summary && (_jsx("span", { className: "truncate text-[var(--agent-muted-foreground,#6b7280)]", children: payload.summary })), _jsxs("span", { className: "ml-auto inline-flex items-center gap-1", children: [_jsx(StatusIcon, { status: status }), _jsx("span", { className: STATUS_TONE[status], children: STATUS_LABEL[status] }), typeof payload.durationMs === 'number' && (_jsxs("span", { className: "text-[var(--agent-muted-foreground,#9ca3af)]", children: ["\u00B7 ", payload.durationMs, "ms"] }))] })] }), expandable && expanded && (_jsxs("div", { className: "space-y-2 border-t border-[var(--agent-border,#e5e7eb)] px-3 py-2", children: [payload.args !== undefined && (_jsxs("section", { children: [_jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-[var(--agent-muted-foreground,#6b7280)]", children: "\u8F93\u5165" }), renderArgs ? renderArgs(payload.args) : defaultRender(payload.args)] })), payload.output !== undefined && (_jsxs("section", { children: [_jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-[var(--agent-muted-foreground,#6b7280)]", children: "\u8F93\u51FA" }), renderOutput ? renderOutput(payload.output) : defaultRender(payload.output)] })), payload.error && (_jsxs("section", { children: [_jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-rose-600", children: "\u9519\u8BEF" }), _jsx("pre", { className: "whitespace-pre-wrap break-words rounded bg-rose-50/60 px-2 py-1.5 text-[11px] text-rose-700", children: payload.error })] }))] }))] }));
62
+ (expanded ? (_jsx(ChevronDownIcon, { size: 12, className: "shrink-0" })) : (_jsx(ChevronRightIcon, { size: 12, className: "shrink-0" }))), _jsx(ZapIcon, { size: 12, className: "shrink-0 text-[var(--agent-muted-foreground,#6b7280)]" }), _jsx("span", { className: "shrink-0 font-medium text-[var(--agent-foreground,#111827)]", children: payload.name }), payload.summary && (_jsx("span", { className: "min-w-0 flex-1 truncate text-[var(--agent-muted-foreground,#6b7280)]", children: payload.summary })), _jsxs("span", { className: "ml-auto inline-flex shrink-0 items-center gap-1 whitespace-nowrap", children: [_jsx(StatusIcon, { status: status }), _jsx("span", { className: STATUS_TONE[status], children: STATUS_LABEL[status] }), typeof payload.durationMs === 'number' && (_jsxs("span", { className: "text-[var(--agent-muted-foreground,#9ca3af)]", children: ["\u00B7 ", payload.durationMs, "ms"] }))] })] }), expandable && expanded && (_jsxs("div", { className: "space-y-2 border-t border-[var(--agent-border,#e5e7eb)] px-3 py-2", children: [payload.args !== undefined && (_jsxs("section", { children: [_jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-[var(--agent-muted-foreground,#6b7280)]", children: "\u8F93\u5165" }), renderArgs ? renderArgs(payload.args) : defaultRender(payload.args)] })), payload.output !== undefined && (_jsxs("section", { children: [_jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-[var(--agent-muted-foreground,#6b7280)]", children: "\u8F93\u51FA" }), renderOutput ? renderOutput(payload.output) : defaultRender(payload.output)] })), payload.error && (_jsxs("section", { children: [_jsx("div", { className: "mb-1 text-[10px] uppercase tracking-wider text-rose-600", children: "\u9519\u8BEF" }), _jsx("pre", { className: "whitespace-pre-wrap break-words rounded bg-rose-50/60 px-2 py-1.5 text-[11px] text-rose-700", children: payload.error })] }))] }))] }));
63
63
  };
64
64
  export default ToolExecutionCard;
65
65
  //# sourceMappingURL=ToolExecutionCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolExecutionCard.js","sourceRoot":"","sources":["../../src/cards/ToolExecutionCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolExecutionCard.js","sourceRoot":"","sources":["../../src/cards/ToolExecutionCard.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steerable/agent-ui",
3
- "version": "0.6.12",
3
+ "version": "0.6.14",
4
4
  "description": "Steerable framework Tier 4 — headless React hooks (useAgentSession, useChatStream, useToolCallStatus) and Tailwind-themed components (ChatPanel, MessageList, OrchestrationPlanCard, ToolCallRenderer, SSEStreamView) for embedding Steerable agents in any React app.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://steerableframework.com/storybook/",
@@ -57,7 +57,7 @@
57
57
  "README.md"
58
58
  ],
59
59
  "dependencies": {
60
- "@steerable/agent-protocol": "0.6.12"
60
+ "@steerable/agent-protocol": "0.6.14"
61
61
  },
62
62
  "peerDependencies": {
63
63
  "react": ">=18.0.0",
@@ -103,13 +103,21 @@ export const ToolExecutionCard: React.FC<ToolExecutionCardProps> = ({
103
103
  aria-disabled={!expandable}
104
104
  >
105
105
  {expandable &&
106
- (expanded ? <ChevronDownIcon size={12} /> : <ChevronRightIcon size={12} />)}
107
- <ZapIcon size={12} className="text-[var(--agent-muted-foreground,#6b7280)]" />
108
- <span className="font-medium text-[var(--agent-foreground,#111827)]">{payload.name}</span>
106
+ (expanded ? (
107
+ <ChevronDownIcon size={12} className="shrink-0" />
108
+ ) : (
109
+ <ChevronRightIcon size={12} className="shrink-0" />
110
+ ))}
111
+ <ZapIcon size={12} className="shrink-0 text-[var(--agent-muted-foreground,#6b7280)]" />
112
+ <span className="shrink-0 font-medium text-[var(--agent-foreground,#111827)]">
113
+ {payload.name}
114
+ </span>
109
115
  {payload.summary && (
110
- <span className="truncate text-[var(--agent-muted-foreground,#6b7280)]">{payload.summary}</span>
116
+ <span className="min-w-0 flex-1 truncate text-[var(--agent-muted-foreground,#6b7280)]">
117
+ {payload.summary}
118
+ </span>
111
119
  )}
112
- <span className="ml-auto inline-flex items-center gap-1">
120
+ <span className="ml-auto inline-flex shrink-0 items-center gap-1 whitespace-nowrap">
113
121
  <StatusIcon status={status} />
114
122
  <span className={STATUS_TONE[status]}>{STATUS_LABEL[status]}</span>
115
123
  {typeof payload.durationMs === 'number' && (
@@ -470,6 +470,28 @@ describe('CoverageReportCard selection mode', () => {
470
470
  });
471
471
 
472
472
  describe('ToolExecutionCard', () => {
473
+ it('keeps the status label on one line when the summary is long', () => {
474
+ render(
475
+ <ToolExecutionCard
476
+ payload={{
477
+ id: 't',
478
+ name: 'local_exec_shell',
479
+ status: 'succeeded',
480
+ summary: 'rm -f /tmp/r1.log; nohup /bin/zsh -c "sleep 999"',
481
+ args: null,
482
+ output: null,
483
+ error: null,
484
+ durationMs: 12,
485
+ icon: null,
486
+ expandable: true,
487
+ }}
488
+ />,
489
+ );
490
+ const label = screen.getByText('已完成');
491
+ expect(label.parentElement?.className).toMatch(/shrink-0/);
492
+ expect(label.parentElement?.className).toMatch(/whitespace-nowrap/);
493
+ });
494
+
473
495
  it('expands to show args/output and renders error', () => {
474
496
  render(
475
497
  <ToolExecutionCard