@agent-native/toolkit 0.203.0 → 0.203.1-nightly-20261007183952
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":"AgentTaskCard.d.ts","sourceRoot":"","sources":["../../../src/app/chat/AgentTaskCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentTaskCard.d.ts","sourceRoot":"","sources":["../../../src/app/chat/AgentTaskCard.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,kBAAkB,qBAmNpB"}
|
|
@@ -2,7 +2,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { agentNativePath } from "@agent-native/core/client/api-path";
|
|
3
3
|
import { useT } from "@agent-native/core/client/i18n";
|
|
4
4
|
import { cn } from "@agent-native/toolkit/utils";
|
|
5
|
-
import { IconLoader2, IconChevronRight, IconExternalLink,
|
|
5
|
+
import { IconLoader2, IconChevronRight, IconExternalLink, IconPlayerStop, IconSubtask, } from "@tabler/icons-react";
|
|
6
6
|
import { useState, useEffect, useRef, useCallback } from "react";
|
|
7
7
|
import ReactMarkdown from "react-markdown";
|
|
8
8
|
import remarkGfm from "remark-gfm";
|
|
@@ -120,7 +120,7 @@ export function AgentTaskCard({ taskId, threadId, description, onOpen, }) {
|
|
|
120
120
|
const displayText = isComplete && summary ? summary : preview;
|
|
121
121
|
const hasContent = displayText.length > 0;
|
|
122
122
|
const statusLabel = isRunning ? "Running" : isError ? "Error" : "Done";
|
|
123
|
-
return (_jsxs("div", { className: "group/agent my-0.5 w-full", children: [_jsxs("button", { type: "button", "aria-expanded": expanded, className: "flex w-full items-center gap-1.5 rounded-md py-0.5 text-left text-[13px] text-muted-foreground transition-colors hover:text-foreground", onClick: () => setExpanded(!expanded), children: [_jsx("span", { className: "relative flex size-4 shrink-0 items-center justify-center", children: isRunning ? (_jsx(IconLoader2, { className: "size-3.5 animate-spin" })) :
|
|
123
|
+
return (_jsxs("div", { className: "group/agent my-0.5 w-full", children: [_jsxs("button", { type: "button", "aria-expanded": expanded, className: "flex w-full items-center gap-1.5 rounded-md py-0.5 text-left text-[13px] text-muted-foreground transition-colors hover:text-foreground", onClick: () => setExpanded(!expanded), children: [_jsx("span", { className: "relative flex size-4 shrink-0 items-center justify-center", children: isRunning ? (_jsx(IconLoader2, { className: "size-3.5 animate-spin" })) : (_jsxs(_Fragment, { children: [_jsx(IconSubtask, { className: cn("size-3.5 transition-opacity", "group-hover/agent:opacity-0") }), _jsx(IconChevronRight, { className: cn("absolute size-3.5 opacity-0 transition-[opacity,transform] group-hover/agent:opacity-100", expanded && "rotate-90") })] })) }), _jsxs("span", { className: cn("min-w-0 truncate font-normal", isRunning && "agent-running-shimmer"), children: [t("agentTask.spawnedAgent"), ": ", taskTitle] }), _jsx("span", { className: "sr-only", children: statusLabel })] }), expanded && (_jsxs("div", { className: "ms-1 border-s border-border/50 ps-2 pt-1", children: [isRunning && currentStepText && (_jsx("p", { className: "ps-5 pb-1 text-xs text-muted-foreground", "aria-live": "polite", children: currentStepText })), hasContent && (_jsx("div", { className: "ps-5 pb-1", children: _jsx("div", { ref: previewRef, "aria-live": isRunning ? "polite" : undefined, "data-streaming": isRunning ? "true" : undefined, className: "agent-markdown prose prose-sm prose-invert max-h-48 max-w-none overflow-y-auto break-words text-xs text-muted-foreground", children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: displayText.length > 800
|
|
124
124
|
? "..." + displayText.slice(-800)
|
|
125
125
|
: displayText }) }) })), _jsxs("div", { className: "flex items-center gap-1 ps-5 pb-1", children: [isRunning && (_jsxs("button", { onClick: handleStop, className: "inline-flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-destructive", "aria-label": t("agentTask.stop"), children: [_jsx(IconPlayerStop, { className: "size-3" }), "Stop"] })), _jsxs("button", { onClick: handleOpen, className: "inline-flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground", children: [t("agentTask.openThread"), _jsx(IconExternalLink, { className: "size-3" })] })] })] }))] }));
|
|
126
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentTaskCard.js","sourceRoot":"","sources":["../../../src/app/chat/AgentTaskCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"AgentTaskCard.js","sourceRoot":"","sources":["../../../src/app/chat/AgentTaskCard.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/toolkit",
|
|
3
|
-
"version": "0.203.
|
|
3
|
+
"version": "0.203.1-nightly-20261007183952",
|
|
4
4
|
"description": "Reusable app-building UI and helpers for Agent-Native apps.",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -673,7 +673,7 @@
|
|
|
673
673
|
"y-protocols": "^1.0.7",
|
|
674
674
|
"yjs": "^13.6.33",
|
|
675
675
|
"zod": "^4.3.6",
|
|
676
|
-
"@agent-native/agentkit": "^0.203.
|
|
676
|
+
"@agent-native/agentkit": "^0.203.1-nightly-20261007183952"
|
|
677
677
|
},
|
|
678
678
|
"devDependencies": {
|
|
679
679
|
"@excalidraw/excalidraw": "0.18.1",
|
|
@@ -697,10 +697,10 @@
|
|
|
697
697
|
"typescript-7": "npm:typescript@^7.0.2",
|
|
698
698
|
"vite": "8.1.0",
|
|
699
699
|
"vitest": "^4.1.5",
|
|
700
|
-
"@agent-native/core": "^0.203.
|
|
700
|
+
"@agent-native/core": "^0.203.1-nightly-20261007183952"
|
|
701
701
|
},
|
|
702
702
|
"peerDependencies": {
|
|
703
|
-
"@agent-native/core": "
|
|
703
|
+
"@agent-native/core": "0.203.1-nightly-20261007183952",
|
|
704
704
|
"@excalidraw/excalidraw": ">=0.18",
|
|
705
705
|
"@excalidraw/mermaid-to-excalidraw": ">=2",
|
|
706
706
|
"@tanstack/react-query": "^5.99.2",
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
AgentNativeI18nProvider as CoreAgentNativeI18nProvider,
|
|
5
|
+
type AgentNativeI18nProviderProps,
|
|
6
|
+
} from "@agent-native/core/client/i18n";
|
|
7
|
+
import { act, type ReactNode } from "react";
|
|
8
|
+
import { createRoot, type Root } from "react-dom/client";
|
|
9
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
10
|
+
|
|
11
|
+
import { createToolkitI18nCatalog } from "../i18n.js";
|
|
12
|
+
import { AgentTaskCard } from "./AgentTaskCard.js";
|
|
13
|
+
|
|
14
|
+
const toolkitI18nCatalog = createToolkitI18nCatalog({ messages: {} });
|
|
15
|
+
|
|
16
|
+
function AgentNativeI18nProvider(props: AgentNativeI18nProviderProps) {
|
|
17
|
+
return (
|
|
18
|
+
<CoreAgentNativeI18nProvider
|
|
19
|
+
{...props}
|
|
20
|
+
catalog={props.catalog ?? toolkitI18nCatalog}
|
|
21
|
+
/>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
describe("AgentTaskCard", () => {
|
|
26
|
+
let container: HTMLDivElement;
|
|
27
|
+
let root: Root;
|
|
28
|
+
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
vi.useFakeTimers();
|
|
31
|
+
container = document.createElement("div");
|
|
32
|
+
document.body.append(container);
|
|
33
|
+
root = createRoot(container);
|
|
34
|
+
const render = root.render.bind(root);
|
|
35
|
+
root.render = (children: ReactNode) =>
|
|
36
|
+
render(
|
|
37
|
+
<AgentNativeI18nProvider persistPreference={false}>
|
|
38
|
+
{children}
|
|
39
|
+
</AgentNativeI18nProvider>,
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
afterEach(async () => {
|
|
44
|
+
await act(async () => root.unmount());
|
|
45
|
+
container.remove();
|
|
46
|
+
vi.clearAllTimers();
|
|
47
|
+
vi.useRealTimers();
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it("keeps failed delegated agents visually neutral in chat", async () => {
|
|
51
|
+
await act(async () => {
|
|
52
|
+
root.render(
|
|
53
|
+
<AgentTaskCard
|
|
54
|
+
taskId="task-1"
|
|
55
|
+
threadId="thread-1"
|
|
56
|
+
description="Generate mockups"
|
|
57
|
+
/>,
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
await act(async () => {
|
|
62
|
+
window.dispatchEvent(
|
|
63
|
+
new CustomEvent("agent-task-event", {
|
|
64
|
+
detail: { type: "agent_task", taskId: "task-1", status: "errored" },
|
|
65
|
+
}),
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
expect(container.textContent).toContain("Generate mockups");
|
|
70
|
+
expect(container.querySelector(".text-destructive")).toBeNull();
|
|
71
|
+
expect(container.querySelector(".sr-only")?.textContent).toBe("Error");
|
|
72
|
+
});
|
|
73
|
+
});
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
IconLoader2,
|
|
6
6
|
IconChevronRight,
|
|
7
7
|
IconExternalLink,
|
|
8
|
-
IconAlertCircle,
|
|
9
8
|
IconPlayerStop,
|
|
10
9
|
IconSubtask,
|
|
11
10
|
} from "@tabler/icons-react";
|
|
@@ -158,8 +157,6 @@ export function AgentTaskCard({
|
|
|
158
157
|
<span className="relative flex size-4 shrink-0 items-center justify-center">
|
|
159
158
|
{isRunning ? (
|
|
160
159
|
<IconLoader2 className="size-3.5 animate-spin" />
|
|
161
|
-
) : isError ? (
|
|
162
|
-
<IconAlertCircle className="size-3.5 text-destructive" />
|
|
163
160
|
) : (
|
|
164
161
|
<>
|
|
165
162
|
<IconSubtask
|