@agent-native/toolkit 0.198.4 → 0.198.6
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/app/agentkit/react/components.d.ts +6 -3
- package/dist/app/agentkit/react/components.d.ts.map +1 -1
- package/dist/app/agentkit/react/components.js +98 -68
- package/dist/app/agentkit/react/components.js.map +1 -1
- package/dist/app/agentkit/react/styles.css +36 -24
- package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.js +32 -15
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/AgentPanel.d.ts +1 -1
- package/dist/app/chat/AgentPanel.d.ts.map +1 -1
- package/dist/app/chat/AgentPanel.js +11 -38
- package/dist/app/chat/AgentPanel.js.map +1 -1
- package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
- package/dist/app/chat/AgentSidebar.js +3 -11
- package/dist/app/chat/AgentSidebar.js.map +1 -1
- package/dist/app/chat/chat/tool-call-display.d.ts +2 -1
- package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -1
- package/dist/app/chat/chat/tool-call-display.js +83 -55
- package/dist/app/chat/chat/tool-call-display.js.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +1 -0
- package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.js +1 -0
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +1 -0
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +1 -0
- package/dist/app/i18n/catalogs/en-US.js.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.js +1 -0
- package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.js +1 -0
- package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.js +1 -0
- package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.js +1 -0
- package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.js +1 -0
- package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.js +1 -0
- package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.js +1 -0
- package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.js +1 -0
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/composer/PromptComposer.d.ts +3 -0
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +2 -2
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts +4 -1
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +32 -25
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/ui/sonner.js +1 -1
- package/dist/ui/sonner.js.map +1 -1
- package/package.json +3 -3
- package/src/app/agentkit/react/components.interaction.spec.tsx +93 -0
- package/src/app/agentkit/react/components.spec.tsx +1 -2
- package/src/app/agentkit/react/components.tsx +185 -132
- package/src/app/agentkit/react/composer-context.spec.tsx +7 -0
- package/src/app/agentkit/react/lifecycle.spec.tsx +556 -39
- package/src/app/agentkit/react/styles.css +36 -24
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +60 -1
- package/src/app/chat/AgentKitAssistantChat.tsx +45 -14
- package/src/app/chat/AgentPanel.overlay.spec.tsx +28 -4
- package/src/app/chat/AgentPanel.tsx +51 -168
- package/src/app/chat/AgentSidebar.spec.tsx +19 -19
- package/src/app/chat/AgentSidebar.tsx +59 -94
- package/src/app/chat/chat/tool-call-display.spec.tsx +371 -15
- package/src/app/chat/chat/tool-call-display.tsx +154 -80
- package/src/app/i18n/catalogs/ar-SA.ts +1 -0
- package/src/app/i18n/catalogs/de-DE.ts +1 -0
- package/src/app/i18n/catalogs/en-US.ts +1 -0
- package/src/app/i18n/catalogs/es-ES.ts +1 -0
- package/src/app/i18n/catalogs/fr-FR.ts +1 -0
- package/src/app/i18n/catalogs/hi-IN.ts +1 -0
- package/src/app/i18n/catalogs/ja-JP.ts +1 -0
- package/src/app/i18n/catalogs/ko-KR.ts +1 -0
- package/src/app/i18n/catalogs/pt-BR.ts +1 -0
- package/src/app/i18n/catalogs/zh-CN.ts +1 -0
- package/src/app/i18n/catalogs/zh-TW.ts +1 -0
- package/src/app-shell/sidebar-overflow.spec.tsx +2 -1
- package/src/composer/PromptComposer.context.spec.tsx +28 -15
- package/src/composer/PromptComposer.tsx +7 -0
- package/src/composer/TiptapComposer.spec.ts +40 -6
- package/src/composer/TiptapComposer.tsx +89 -89
- package/src/ui/sonner.spec.ts +15 -0
- package/src/ui/sonner.tsx +1 -1
package/dist/ui/sonner.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useTheme } from "next-themes";
|
|
|
3
3
|
import { Toaster as Sonner } from "sonner";
|
|
4
4
|
import { cn } from "../utils.js";
|
|
5
5
|
const toastWidthClasses = "group-[.toaster]:!w-[var(--width)] group-[.toaster]:!min-w-[min(20rem,calc(100vw_-_2rem))] group-[.toaster]:!max-w-[var(--width)] group-[.toaster]:!gap-3 group-[.toaster]:!break-normal";
|
|
6
|
-
const toastContentClasses = "group-[.toast]:!min-w-
|
|
6
|
+
const toastContentClasses = "group-[.toast]:!min-w-0 group-[.toast]:!flex-1 group-[.toast]:!basis-auto group-[.toast]:break-words";
|
|
7
7
|
const toastButtonClasses = "group-[.toast]:!shrink-0 group-[.toast]:!whitespace-nowrap";
|
|
8
8
|
const Toaster = ({ className, toastOptions, ...props }) => {
|
|
9
9
|
const { theme = "system" } = useTheme();
|
package/dist/ui/sonner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sonner.js","sourceRoot":"","sources":["../../src/ui/sonner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAIjC,MAAM,iBAAiB,GACrB,0LAA0L,CAAC;AAC7L,MAAM,mBAAmB,GACvB,
|
|
1
|
+
{"version":3,"file":"sonner.js","sourceRoot":"","sources":["../../src/ui/sonner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAIjC,MAAM,iBAAiB,GACrB,0LAA0L,CAAC;AAC7L,MAAM,mBAAmB,GACvB,sGAAsG,CAAC;AACzG,MAAM,kBAAkB,GACtB,4DAA4D,CAAC;AAE/D,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,EAAgB,EAAE,EAAE;IACtE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,YAAY,EAAE,UAAU,CAAC;IAE5C,OAAO,CACL,KAAC,MAAM,IACL,KAAK,EAAE,KAA8B,EACrC,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,CACV,EACD,YAAY,EAAE;YACZ,GAAG,YAAY;YACf,UAAU,EAAE;gBACV,GAAG,UAAU;gBACb,KAAK,EAAE,EAAE,CACP,iBAAiB,EACjB,uIAAuI,EACvI,UAAU,EAAE,KAAK,CAClB;gBACD,KAAK,EAAE,EAAE,CAAC,4BAA4B,EAAE,UAAU,EAAE,KAAK,CAAC;gBAC1D,WAAW,EAAE,EAAE,CACb,iEAAiE,EACjE,UAAU,EAAE,WAAW,CACxB;gBACD,OAAO,EAAE,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC;gBACrD,YAAY,EAAE,EAAE,CACd,kBAAkB,EAClB,kEAAkE,EAClE,UAAU,EAAE,YAAY,CACzB;gBACD,YAAY,EAAE,EAAE,CACd,kBAAkB,EAClB,8DAA8D,EAC9D,UAAU,EAAE,YAAY,CACzB;aACF;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/toolkit",
|
|
3
|
-
"version": "0.198.
|
|
3
|
+
"version": "0.198.6",
|
|
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": {
|
|
@@ -665,7 +665,7 @@
|
|
|
665
665
|
"y-protocols": "^1.0.7",
|
|
666
666
|
"yjs": "^13.6.33",
|
|
667
667
|
"zod": "^4.3.6",
|
|
668
|
-
"@agent-native/agentkit": "^0.198.
|
|
668
|
+
"@agent-native/agentkit": "^0.198.6"
|
|
669
669
|
},
|
|
670
670
|
"devDependencies": {
|
|
671
671
|
"@excalidraw/excalidraw": "0.18.1",
|
|
@@ -686,7 +686,7 @@
|
|
|
686
686
|
"typescript-7": "npm:typescript@^7.0.2",
|
|
687
687
|
"vite": "8.1.0",
|
|
688
688
|
"vitest": "^4.1.5",
|
|
689
|
-
"@agent-native/core": "^0.198.
|
|
689
|
+
"@agent-native/core": "^0.198.6"
|
|
690
690
|
},
|
|
691
691
|
"peerDependencies": {
|
|
692
692
|
"@agent-native/core": ">=0.196.0",
|
|
@@ -95,6 +95,97 @@ describe("AgentKitChat interactions", () => {
|
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
|
|
98
|
+
it("announces async preflight when the transcript slot is custom", async () => {
|
|
99
|
+
const preflight = Promise.withResolvers<boolean>();
|
|
100
|
+
const client = new AgentKitClient({
|
|
101
|
+
transport: {
|
|
102
|
+
async startRun() {
|
|
103
|
+
return { runId: "run-preflight" };
|
|
104
|
+
},
|
|
105
|
+
async *subscribeToRun() {},
|
|
106
|
+
async cancelRun() {},
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
const composerRef = createRef<TiptapComposerHandle>();
|
|
110
|
+
const container = document.createElement("div");
|
|
111
|
+
document.body.appendChild(container);
|
|
112
|
+
const root = createRoot(container);
|
|
113
|
+
const actEnvironment = globalThis as typeof globalThis & {
|
|
114
|
+
IS_REACT_ACT_ENVIRONMENT?: boolean;
|
|
115
|
+
};
|
|
116
|
+
const previousActEnvironment = actEnvironment.IS_REACT_ACT_ENVIRONMENT;
|
|
117
|
+
actEnvironment.IS_REACT_ACT_ENVIRONMENT = true;
|
|
118
|
+
|
|
119
|
+
try {
|
|
120
|
+
await act(async () => {
|
|
121
|
+
root.render(
|
|
122
|
+
<AgentKitProvider
|
|
123
|
+
controller={client}
|
|
124
|
+
threadId="thread-preflight"
|
|
125
|
+
slots={{
|
|
126
|
+
transcript: ({ children }) =>
|
|
127
|
+
createElement(
|
|
128
|
+
"div",
|
|
129
|
+
{ "data-custom-transcript": true },
|
|
130
|
+
children,
|
|
131
|
+
),
|
|
132
|
+
}}
|
|
133
|
+
>
|
|
134
|
+
<AgentKitChat
|
|
135
|
+
composerProps={{
|
|
136
|
+
composerRef,
|
|
137
|
+
autoFocus: false,
|
|
138
|
+
modelStatusChecksEnabled: false,
|
|
139
|
+
onBeforeSubmit: () => preflight.promise,
|
|
140
|
+
voiceEnabled: false,
|
|
141
|
+
}}
|
|
142
|
+
/>
|
|
143
|
+
</AgentKitProvider>,
|
|
144
|
+
);
|
|
145
|
+
});
|
|
146
|
+
await act(async () => composerRef.current!.setText("Check this message"));
|
|
147
|
+
|
|
148
|
+
const editor = container.querySelector<HTMLElement>(
|
|
149
|
+
'[contenteditable="true"]',
|
|
150
|
+
)!;
|
|
151
|
+
const send = container.querySelector<HTMLButtonElement>(
|
|
152
|
+
'[data-agent-composer-slot="send-button"]',
|
|
153
|
+
)!;
|
|
154
|
+
await act(async () => {
|
|
155
|
+
send.click();
|
|
156
|
+
await Promise.resolve();
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
expect(editor.textContent).toBe("");
|
|
160
|
+
expect(container.querySelector('[role="status"]')?.textContent).toBe(
|
|
161
|
+
"Thinking",
|
|
162
|
+
);
|
|
163
|
+
expect(send.disabled).toBe(true);
|
|
164
|
+
expect(send.getAttribute("aria-busy")).toBeNull();
|
|
165
|
+
expect(send.querySelector(".animate-spin")).toBeNull();
|
|
166
|
+
|
|
167
|
+
await act(async () => {
|
|
168
|
+
preflight.resolve(false);
|
|
169
|
+
await preflight.promise;
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
expect(editor.textContent).toBe("Check this message");
|
|
173
|
+
expect(send.disabled).toBe(false);
|
|
174
|
+
expect(container.querySelector('[role="status"]')).toBeNull();
|
|
175
|
+
} finally {
|
|
176
|
+
preflight.resolve(false);
|
|
177
|
+
await act(async () => root.unmount());
|
|
178
|
+
await client.shutdown();
|
|
179
|
+
container.remove();
|
|
180
|
+
localStorage.removeItem(getComposerDraftKey("agentkit:thread-preflight"));
|
|
181
|
+
if (previousActEnvironment === undefined) {
|
|
182
|
+
delete actEnvironment.IS_REACT_ACT_ENVIRONMENT;
|
|
183
|
+
} else {
|
|
184
|
+
actEnvironment.IS_REACT_ACT_ENVIRONMENT = previousActEnvironment;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
|
|
98
189
|
it.each(["default", "compact"] as const)(
|
|
99
190
|
"clears the %s composer before startRun resolves and preserves the next draft",
|
|
100
191
|
async (layoutVariant) => {
|
|
@@ -160,6 +251,8 @@ describe("AgentKitChat interactions", () => {
|
|
|
160
251
|
).toContain("First prompt");
|
|
161
252
|
expect(client.getThread("thread-latency").activeRunIds).toEqual([]);
|
|
162
253
|
expect(editor.textContent).toBe("");
|
|
254
|
+
expect(send.getAttribute("aria-busy")).toBeNull();
|
|
255
|
+
expect(send.querySelector(".animate-spin")).toBeNull();
|
|
163
256
|
|
|
164
257
|
await act(async () => composerRef.current!.setText("Next draft"));
|
|
165
258
|
await act(async () => started.resolve({ runId: "run-latency" }));
|
|
@@ -476,8 +476,7 @@ describe("AgentKitChat", () => {
|
|
|
476
476
|
expect(source).toContain(
|
|
477
477
|
"const submissionBlocked = Boolean(submissionDisabled) || command.pending",
|
|
478
478
|
);
|
|
479
|
-
expect(source).toContain("submitting={command.pending}");
|
|
480
|
-
expect(source).toContain("submissionDisabled={submissionBlocked}");
|
|
479
|
+
expect(source).not.toContain("submitting={command.pending}");
|
|
481
480
|
expect(source).toContain("if (disabled)");
|
|
482
481
|
expect(source).toContain(
|
|
483
482
|
"willQueue={active && queueWhileRunning && canQueue}",
|