@copilotkit/react-core 1.56.1 → 1.56.2-canary.test-welcome-screen
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/{copilotkit-CSJw5BG8.cjs → copilotkit-By2G6-Zx.cjs} +250 -63
- package/dist/copilotkit-By2G6-Zx.cjs.map +1 -0
- package/dist/{copilotkit-CCbxm6JM.d.mts → copilotkit-DFaI4j2r.d.mts} +64 -18
- package/dist/copilotkit-DFaI4j2r.d.mts.map +1 -0
- package/dist/{copilotkit-BtP7w7cT.d.cts → copilotkit-Dg4r4Gi_.d.cts} +64 -18
- package/dist/copilotkit-Dg4r4Gi_.d.cts.map +1 -0
- package/dist/{copilotkit-Cj2ZIxVr.mjs → copilotkit-PzJlPKcU.mjs} +251 -64
- package/dist/copilotkit-PzJlPKcU.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.umd.js +31 -44
- package/dist/index.umd.js.map +1 -1
- package/dist/v2/index.cjs +1 -1
- package/dist/v2/index.css +1 -1
- package/dist/v2/index.d.cts +2 -2
- package/dist/v2/index.d.mts +2 -2
- package/dist/v2/index.mjs +1 -1
- package/dist/v2/index.umd.js +249 -66
- package/dist/v2/index.umd.js.map +1 -1
- package/package.json +6 -6
- package/src/components/copilot-provider/__tests__/v1-explicit-threadid-bridge.test.tsx +107 -0
- package/src/components/copilot-provider/copilotkit.tsx +6 -1
- package/src/context/__tests__/threads-context.test.tsx +116 -3
- package/src/context/threads-context.tsx +18 -1
- package/src/v2/components/chat/CopilotChat.tsx +91 -4
- package/src/v2/components/chat/CopilotChatInput.tsx +22 -0
- package/src/v2/components/chat/CopilotChatView.tsx +206 -11
- package/src/v2/components/chat/__tests__/CopilotChat.absentThreadConnect.test.tsx +66 -0
- package/src/v2/components/chat/__tests__/CopilotChat.welcomeGate.test.tsx +186 -0
- package/src/v2/components/chat/__tests__/CopilotChatActivityRendering.e2e.test.tsx +300 -2
- package/src/v2/components/chat/__tests__/CopilotChatView.connectingGate.test.tsx +56 -0
- package/src/v2/components/chat/__tests__/CopilotChatView.pinToSend.test.tsx +94 -0
- package/src/v2/components/chat/__tests__/copilot-chat-throttle.test.tsx +0 -1
- package/src/v2/components/chat/__tests__/normalize-auto-scroll.test.ts +37 -0
- package/src/v2/components/chat/index.ts +2 -0
- package/src/v2/components/chat/last-user-message-context.ts +21 -0
- package/src/v2/components/chat/normalize-auto-scroll.ts +17 -0
- package/src/v2/components/license-warning-banner.tsx +20 -1
- package/src/v2/hooks/__tests__/use-agent-stability.test.tsx +6 -0
- package/src/v2/hooks/__tests__/use-agent-thread-isolation.test.tsx +6 -0
- package/src/v2/hooks/__tests__/use-agent-throttle.test.tsx +76 -50
- package/src/v2/hooks/__tests__/use-pin-to-send.test.tsx +219 -0
- package/src/v2/hooks/__tests__/use-threads.test.tsx +68 -0
- package/src/v2/hooks/use-agent.tsx +34 -77
- package/src/v2/hooks/use-pin-to-send.ts +94 -0
- package/src/v2/hooks/use-threads.tsx +55 -12
- package/src/v2/providers/CopilotChatConfigurationProvider.tsx +29 -1
- package/src/v2/providers/CopilotKitProvider.tsx +2 -11
- package/src/v2/providers/__tests__/CopilotChatConfigurationProvider.test.tsx +106 -0
- package/dist/copilotkit-BtP7w7cT.d.cts.map +0 -1
- package/dist/copilotkit-CCbxm6JM.d.mts.map +0 -1
- package/dist/copilotkit-CSJw5BG8.cjs.map +0 -1
- package/dist/copilotkit-Cj2ZIxVr.mjs.map +0 -1
|
@@ -6,6 +6,7 @@ import { AbstractAgent, HttpAgent } from "@ag-ui/client";
|
|
|
6
6
|
import {
|
|
7
7
|
ProxiedCopilotRuntimeAgent,
|
|
8
8
|
CopilotKitCoreRuntimeConnectionStatus,
|
|
9
|
+
type SubscribeToAgentSubscriber,
|
|
9
10
|
} from "@copilotkit/core";
|
|
10
11
|
|
|
11
12
|
export enum UseAgentUpdate {
|
|
@@ -25,23 +26,26 @@ export interface UseAgentProps {
|
|
|
25
26
|
threadId?: string;
|
|
26
27
|
updates?: UseAgentUpdate[];
|
|
27
28
|
/**
|
|
28
|
-
* Throttle interval (in milliseconds) for
|
|
29
|
-
* `
|
|
30
|
-
* during high-frequency
|
|
29
|
+
* Throttle interval (in milliseconds) for re-renders triggered by
|
|
30
|
+
* `onMessagesChanged` and `onStateChanged` notifications. Useful to reduce
|
|
31
|
+
* re-render frequency during high-frequency streaming updates.
|
|
31
32
|
*
|
|
32
|
-
* Uses leading+trailing
|
|
33
|
-
* within the window are coalesced,
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* Uses a leading+trailing pattern with a shared window — first update
|
|
34
|
+
* fires immediately, subsequent updates within the window are coalesced,
|
|
35
|
+
* and a trailing timer ensures the most recent update fires after the
|
|
36
|
+
* window expires. See `CopilotKitCore.subscribeToAgentWithOptions` in `@copilotkit/core`
|
|
37
|
+
* for details.
|
|
37
38
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* always fire immediately. If `updates` does not include
|
|
42
|
-
* `OnMessagesChanged`, this property has no effect.
|
|
39
|
+
* Resolved as: `throttleMs ?? provider defaultThrottleMs ?? 0`.
|
|
40
|
+
* Passing `throttleMs={0}` explicitly disables throttling even when the
|
|
41
|
+
* provider specifies a non-zero `defaultThrottleMs`.
|
|
43
42
|
*
|
|
44
|
-
*
|
|
43
|
+
* Run lifecycle callbacks (`onRunInitialized`, `onRunFinalized`,
|
|
44
|
+
* `onRunFailed`, `onRunErrorEvent`) always fire immediately.
|
|
45
|
+
*
|
|
46
|
+
* @default undefined
|
|
47
|
+
* When unset, inherits from the provider's `defaultThrottleMs`;
|
|
48
|
+
* if that is also unset, the effective value is `0` (no throttle).
|
|
45
49
|
*/
|
|
46
50
|
throttleMs?: number;
|
|
47
51
|
}
|
|
@@ -123,6 +127,9 @@ export function useAgent({
|
|
|
123
127
|
agentId ??= DEFAULT_AGENT_ID;
|
|
124
128
|
|
|
125
129
|
const { copilotkit } = useCopilotKit();
|
|
130
|
+
// Read the provider-level default so it appears in the effect's dep array.
|
|
131
|
+
// subscribeToAgentWithOptions reads it from the core instance, but React needs the dep
|
|
132
|
+
// to know when to re-subscribe.
|
|
126
133
|
const providerThrottleMs = copilotkit.defaultThrottleMs;
|
|
127
134
|
// Fall back to the enclosing CopilotChatConfigurationProvider's threadId so
|
|
128
135
|
// that useAgent() called without explicit threadId (e.g. inside a custom
|
|
@@ -131,23 +138,6 @@ export function useAgent({
|
|
|
131
138
|
const chatConfig = useCopilotChatConfiguration();
|
|
132
139
|
threadId ??= chatConfig?.threadId;
|
|
133
140
|
|
|
134
|
-
const effectiveThrottleMs = useMemo(() => {
|
|
135
|
-
const resolved = throttleMs ?? providerThrottleMs ?? 0;
|
|
136
|
-
if (!Number.isFinite(resolved) || resolved < 0) {
|
|
137
|
-
// When both throttleMs and providerThrottleMs are undefined, resolved
|
|
138
|
-
// is 0 which passes validation — so one of them must be defined here.
|
|
139
|
-
const source =
|
|
140
|
-
throttleMs !== undefined
|
|
141
|
-
? "hook-level throttleMs"
|
|
142
|
-
: "provider-level defaultThrottleMs";
|
|
143
|
-
console.error(
|
|
144
|
-
`useAgent: ${source} must be a non-negative finite number, got ${resolved}. Falling back to unthrottled.`,
|
|
145
|
-
);
|
|
146
|
-
return 0;
|
|
147
|
-
}
|
|
148
|
-
return resolved;
|
|
149
|
-
}, [throttleMs, providerThrottleMs]);
|
|
150
|
-
|
|
151
141
|
const [, forceUpdate] = useReducer((x) => x + 1, 0);
|
|
152
142
|
|
|
153
143
|
const updateFlags = useMemo(
|
|
@@ -277,9 +267,8 @@ export function useAgent({
|
|
|
277
267
|
useEffect(() => {
|
|
278
268
|
if (updateFlags.length === 0) return;
|
|
279
269
|
|
|
280
|
-
const handlers: Parameters<AbstractAgent["subscribe"]>[0] = {};
|
|
281
|
-
let timerId: ReturnType<typeof setTimeout> | null = null;
|
|
282
270
|
let active = true;
|
|
271
|
+
const handlers: SubscribeToAgentSubscriber = {};
|
|
283
272
|
|
|
284
273
|
// Microtask-batched forceUpdate: coalesces multiple synchronous
|
|
285
274
|
// notifications (e.g. OnStateChanged + OnRunStatusChanged firing in the
|
|
@@ -301,45 +290,7 @@ export function useAgent({
|
|
|
301
290
|
};
|
|
302
291
|
|
|
303
292
|
if (updateFlags.includes(UseAgentUpdate.OnMessagesChanged)) {
|
|
304
|
-
|
|
305
|
-
if (ms > 0) {
|
|
306
|
-
// Throttled onMessagesChanged: leading+trailing pattern.
|
|
307
|
-
// First notification fires immediately, subsequent ones within the
|
|
308
|
-
// window are coalesced. Trailing timer fires after the window to
|
|
309
|
-
// ensure the final state is rendered.
|
|
310
|
-
let throttleActive = false;
|
|
311
|
-
// Tracks whether a notification arrived during the throttle window,
|
|
312
|
-
// so the trailing timer knows whether a re-render is needed.
|
|
313
|
-
let pending = false;
|
|
314
|
-
|
|
315
|
-
const throttledNotify = () => {
|
|
316
|
-
if (!active) return;
|
|
317
|
-
if (!throttleActive) {
|
|
318
|
-
// Leading edge — fire immediately and start the throttle window
|
|
319
|
-
throttleActive = true;
|
|
320
|
-
pending = false;
|
|
321
|
-
forceUpdate();
|
|
322
|
-
timerId = setTimeout(function trailingEdge() {
|
|
323
|
-
timerId = null;
|
|
324
|
-
if (active && pending) {
|
|
325
|
-
// Trailing edge — fire and restart the window
|
|
326
|
-
pending = false;
|
|
327
|
-
forceUpdate();
|
|
328
|
-
timerId = setTimeout(trailingEdge, ms);
|
|
329
|
-
} else {
|
|
330
|
-
// No pending notifications — end the window
|
|
331
|
-
throttleActive = false;
|
|
332
|
-
}
|
|
333
|
-
}, ms);
|
|
334
|
-
} else {
|
|
335
|
-
pending = true;
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
handlers.onMessagesChanged = throttledNotify;
|
|
340
|
-
} else {
|
|
341
|
-
handlers.onMessagesChanged = forceUpdate;
|
|
342
|
-
}
|
|
293
|
+
handlers.onMessagesChanged = forceUpdate;
|
|
343
294
|
}
|
|
344
295
|
|
|
345
296
|
if (updateFlags.includes(UseAgentUpdate.OnStateChanged)) {
|
|
@@ -350,18 +301,24 @@ export function useAgent({
|
|
|
350
301
|
handlers.onRunInitialized = batchedForceUpdate;
|
|
351
302
|
handlers.onRunFinalized = batchedForceUpdate;
|
|
352
303
|
handlers.onRunFailed = batchedForceUpdate;
|
|
304
|
+
// Protocol-level RUN_ERROR event (distinct from onRunFailed which
|
|
305
|
+
// handles local exceptions like network errors).
|
|
306
|
+
handlers.onRunErrorEvent = batchedForceUpdate;
|
|
353
307
|
}
|
|
354
308
|
|
|
355
|
-
const subscription =
|
|
309
|
+
const subscription = copilotkit.subscribeToAgentWithOptions(
|
|
310
|
+
agent,
|
|
311
|
+
handlers,
|
|
312
|
+
{
|
|
313
|
+
throttleMs,
|
|
314
|
+
},
|
|
315
|
+
);
|
|
356
316
|
return () => {
|
|
357
317
|
active = false;
|
|
358
|
-
if (timerId !== null) {
|
|
359
|
-
clearTimeout(timerId);
|
|
360
|
-
}
|
|
361
318
|
subscription.unsubscribe();
|
|
362
319
|
};
|
|
363
320
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
364
|
-
}, [agent, forceUpdate,
|
|
321
|
+
}, [agent, forceUpdate, throttleMs, providerThrottleMs, updateFlags]);
|
|
365
322
|
|
|
366
323
|
// Keep HttpAgent headers fresh without mutating inside useMemo, which is
|
|
367
324
|
// unsafe in concurrent mode (React may invoke useMemo multiple times and
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useContext, useEffect, useRef } from "react";
|
|
2
|
+
import { LastUserMessageContext } from "../components/chat/last-user-message-context";
|
|
3
|
+
|
|
4
|
+
export type UsePinToSendOptions = {
|
|
5
|
+
scrollRef: React.RefObject<HTMLElement | null>;
|
|
6
|
+
contentRef: React.RefObject<HTMLElement | null>;
|
|
7
|
+
spacerRef: React.RefObject<HTMLElement | null>;
|
|
8
|
+
topOffset?: number;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export function usePinToSend({
|
|
12
|
+
scrollRef,
|
|
13
|
+
contentRef,
|
|
14
|
+
spacerRef,
|
|
15
|
+
topOffset = 16,
|
|
16
|
+
}: UsePinToSendOptions): void {
|
|
17
|
+
const { id, sendNonce } = useContext(LastUserMessageContext);
|
|
18
|
+
const lastNonceRef = useRef<number>(-1);
|
|
19
|
+
const currentSpacerHeightRef = useRef<number>(0);
|
|
20
|
+
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (sendNonce === lastNonceRef.current) return;
|
|
23
|
+
lastNonceRef.current = sendNonce;
|
|
24
|
+
|
|
25
|
+
if (!id) return;
|
|
26
|
+
const scrollEl = scrollRef.current;
|
|
27
|
+
const contentEl = contentRef.current;
|
|
28
|
+
const spacerEl = spacerRef.current;
|
|
29
|
+
if (!scrollEl || !contentEl || !spacerEl) return;
|
|
30
|
+
|
|
31
|
+
const escaped =
|
|
32
|
+
typeof CSS !== "undefined" && CSS.escape
|
|
33
|
+
? CSS.escape(id)
|
|
34
|
+
: id.replace(/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g, "\\$&");
|
|
35
|
+
const targetEl = contentEl.querySelector<HTMLElement>(
|
|
36
|
+
`[data-message-id="${escaped}"]`,
|
|
37
|
+
);
|
|
38
|
+
if (!targetEl) return;
|
|
39
|
+
|
|
40
|
+
// The target message's element has a top padding (e.g. `pt-10`) that
|
|
41
|
+
// creates breathing room above the visible bubble. When we "anchor at
|
|
42
|
+
// the top", we mean anchor the *bubble*, not the element's padded box.
|
|
43
|
+
// So we scroll past the padding (it goes above the viewport, hiding
|
|
44
|
+
// whatever was above the element too — including the previous message's
|
|
45
|
+
// trailing copy button).
|
|
46
|
+
const viewportHeight = scrollEl.clientHeight;
|
|
47
|
+
const userMessageHeight = targetEl.getBoundingClientRect().height;
|
|
48
|
+
const paddingTop = parseFloat(getComputedStyle(targetEl).paddingTop) || 0;
|
|
49
|
+
const bubbleHeight = Math.max(0, userMessageHeight - paddingTop);
|
|
50
|
+
const spacerHeight = Math.max(0, viewportHeight - bubbleHeight - topOffset);
|
|
51
|
+
|
|
52
|
+
spacerEl.style.height = `${spacerHeight}px`;
|
|
53
|
+
currentSpacerHeightRef.current = spacerHeight;
|
|
54
|
+
|
|
55
|
+
const raf = requestAnimationFrame(() => {
|
|
56
|
+
// Scroll so the BUBBLE is `topOffset` from the viewport top — the
|
|
57
|
+
// padding above the bubble ends up scrolled off-screen.
|
|
58
|
+
const targetTop =
|
|
59
|
+
computeOffsetTop(targetEl, scrollEl) + paddingTop - topOffset;
|
|
60
|
+
scrollEl.scrollTo({ top: Math.max(0, targetTop), behavior: "smooth" });
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Shrink-only ResizeObserver: as the assistant response grows below the
|
|
64
|
+
// anchored user message, collapse the spacer by the same amount so total
|
|
65
|
+
// scrollable space below the bubble stays constant (and the bubble stays
|
|
66
|
+
// pinned). Never grow the spacer after initial sizing.
|
|
67
|
+
const ro = new ResizeObserver(() => {
|
|
68
|
+
if (!contentEl || !spacerEl || !scrollEl) return;
|
|
69
|
+
const contentHeight = contentEl.getBoundingClientRect().height;
|
|
70
|
+
const targetOffsetWithinContent = computeOffsetTop(targetEl, contentEl);
|
|
71
|
+
const consumedBelow =
|
|
72
|
+
contentHeight - targetOffsetWithinContent - userMessageHeight;
|
|
73
|
+
const remaining = Math.max(0, spacerHeight - consumedBelow);
|
|
74
|
+
if (remaining < currentSpacerHeightRef.current) {
|
|
75
|
+
spacerEl.style.height = `${remaining}px`;
|
|
76
|
+
currentSpacerHeightRef.current = remaining;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
ro.observe(contentEl);
|
|
80
|
+
|
|
81
|
+
return () => {
|
|
82
|
+
cancelAnimationFrame(raf);
|
|
83
|
+
ro.disconnect();
|
|
84
|
+
};
|
|
85
|
+
}, [id, sendNonce, scrollRef, contentRef, spacerRef, topOffset]);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Compute the offset of el relative to stopAt, accounting for stopAt's current scrollTop.
|
|
89
|
+
// Uses getBoundingClientRect so it works regardless of CSS positioning (including position:static).
|
|
90
|
+
function computeOffsetTop(el: HTMLElement, stopAt: HTMLElement): number {
|
|
91
|
+
const elRect = el.getBoundingClientRect();
|
|
92
|
+
const stopRect = stopAt.getBoundingClientRect();
|
|
93
|
+
return elRect.top - stopRect.top + stopAt.scrollTop;
|
|
94
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useCopilotKit } from "../providers/CopilotKitProvider";
|
|
2
2
|
import {
|
|
3
|
+
CopilotKitCoreRuntimeConnectionStatus,
|
|
3
4
|
ɵcreateThreadStore,
|
|
4
5
|
ɵselectThreads,
|
|
5
6
|
ɵselectThreadsError,
|
|
@@ -30,6 +31,13 @@ export interface Thread {
|
|
|
30
31
|
archived: boolean;
|
|
31
32
|
createdAt: string;
|
|
32
33
|
updatedAt: string;
|
|
34
|
+
/**
|
|
35
|
+
* ISO-8601 timestamp of the most recent agent run on this thread. Absent
|
|
36
|
+
* when the thread has never been run. Prefer this over `updatedAt` for
|
|
37
|
+
* user-facing "last activity" displays — it is not bumped by metadata-only
|
|
38
|
+
* actions like rename or archive.
|
|
39
|
+
*/
|
|
40
|
+
lastRunAt?: string;
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
/**
|
|
@@ -179,13 +187,14 @@ export function useThreads({
|
|
|
179
187
|
const threads: Thread[] = useMemo(
|
|
180
188
|
() =>
|
|
181
189
|
coreThreads.map(
|
|
182
|
-
({ id, agentId, name, archived, createdAt, updatedAt }) => ({
|
|
190
|
+
({ id, agentId, name, archived, createdAt, updatedAt, lastRunAt }) => ({
|
|
183
191
|
id,
|
|
184
192
|
agentId,
|
|
185
193
|
name,
|
|
186
194
|
archived,
|
|
187
195
|
createdAt,
|
|
188
196
|
updatedAt,
|
|
197
|
+
...(lastRunAt !== undefined ? { lastRunAt } : {}),
|
|
189
198
|
}),
|
|
190
199
|
),
|
|
191
200
|
[coreThreads],
|
|
@@ -211,7 +220,18 @@ export function useThreads({
|
|
|
211
220
|
|
|
212
221
|
return new Error("Runtime URL is not configured");
|
|
213
222
|
}, [copilotkit.runtimeUrl]);
|
|
214
|
-
|
|
223
|
+
|
|
224
|
+
// Tracks whether we've dispatched the first real context to the store.
|
|
225
|
+
// The store itself starts with `isLoading: false`, so before we dispatch
|
|
226
|
+
// consumers would otherwise see an empty, non-loading state (empty-list
|
|
227
|
+
// flash). While runtimeUrl is set and we haven't dispatched yet, we
|
|
228
|
+
// synthesize `isLoading: true` so the UI keeps its loading indicator until
|
|
229
|
+
// the first fetch is in flight (at which point the store's own
|
|
230
|
+
// isLoading takes over).
|
|
231
|
+
const [hasDispatchedContext, setHasDispatchedContext] = useState(false);
|
|
232
|
+
const preConnectLoading = !!copilotkit.runtimeUrl && !hasDispatchedContext;
|
|
233
|
+
|
|
234
|
+
const isLoading = runtimeError ? false : preConnectLoading || storeIsLoading;
|
|
215
235
|
const error = runtimeError ?? storeError;
|
|
216
236
|
|
|
217
237
|
useEffect(() => {
|
|
@@ -221,22 +241,45 @@ export function useThreads({
|
|
|
221
241
|
};
|
|
222
242
|
}, [store]);
|
|
223
243
|
|
|
244
|
+
// Defer setting the context until the runtime reports Connected. Before
|
|
245
|
+
// `/info` resolves we don't know `intelligence.wsUrl`, so dispatching the
|
|
246
|
+
// context early would issue a list fetch with `wsUrl: undefined`, then a
|
|
247
|
+
// second list fetch (and a `/threads/subscribe`) once the flag lands.
|
|
248
|
+
// Waiting lets the hook issue just one `/threads?…` + one `/threads/subscribe`.
|
|
249
|
+
//
|
|
250
|
+
// When `runtimeUrl` is absent we dispatch `null` to clear the store. For
|
|
251
|
+
// transient states (Disconnected/Connecting/Error with a URL still set) we
|
|
252
|
+
// leave the previously-dispatched context in place — any in-flight
|
|
253
|
+
// realtime subscription or cached thread list stays usable while the
|
|
254
|
+
// runtime recovers, and we don't re-trigger a fetch storm on transitions.
|
|
255
|
+
const runtimeStatus = copilotkit.runtimeConnectionStatus;
|
|
224
256
|
useEffect(() => {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
257
|
+
if (!copilotkit.runtimeUrl) {
|
|
258
|
+
store.setContext(null);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// Wait for /info to land so we can include `wsUrl` in the initial
|
|
263
|
+
// context and avoid a redundant second list fetch.
|
|
264
|
+
if (runtimeStatus !== CopilotKitCoreRuntimeConnectionStatus.Connected) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
const context: ɵThreadRuntimeContext = {
|
|
269
|
+
runtimeUrl: copilotkit.runtimeUrl,
|
|
270
|
+
headers: { ...copilotkit.headers },
|
|
271
|
+
wsUrl: copilotkit.intelligence?.wsUrl,
|
|
272
|
+
agentId,
|
|
273
|
+
includeArchived,
|
|
274
|
+
limit,
|
|
275
|
+
};
|
|
235
276
|
|
|
236
277
|
store.setContext(context);
|
|
278
|
+
setHasDispatchedContext(true);
|
|
237
279
|
}, [
|
|
238
280
|
store,
|
|
239
281
|
copilotkit.runtimeUrl,
|
|
282
|
+
runtimeStatus,
|
|
240
283
|
headersKey,
|
|
241
284
|
copilotkit.intelligence?.wsUrl,
|
|
242
285
|
agentId,
|
|
@@ -45,6 +45,11 @@ export interface CopilotChatConfigurationValue {
|
|
|
45
45
|
threadId: string;
|
|
46
46
|
isModalOpen: boolean;
|
|
47
47
|
setModalOpen: (open: boolean) => void;
|
|
48
|
+
// True when the current threadId was chosen by the caller rather than
|
|
49
|
+
// silently minted inside the provider chain. Consumers that only make
|
|
50
|
+
// sense against a real backend thread (e.g. /connect, suppressing the
|
|
51
|
+
// welcome screen on switch) gate on this instead of `!!threadId`.
|
|
52
|
+
hasExplicitThreadId: boolean;
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
// Create the configuration context
|
|
@@ -57,13 +62,26 @@ export interface CopilotChatConfigurationProviderProps {
|
|
|
57
62
|
labels?: Partial<CopilotChatLabels>;
|
|
58
63
|
agentId?: string;
|
|
59
64
|
threadId?: string;
|
|
65
|
+
// Lets internal wrappers (e.g. the v1 CopilotKit bridge, which pipes a
|
|
66
|
+
// ThreadsProvider-minted UUID through as `threadId`) declare that the
|
|
67
|
+
// threadId they are supplying is NOT a caller choice. When omitted, the
|
|
68
|
+
// provider infers explicitness from whether the `threadId` prop itself
|
|
69
|
+
// was supplied.
|
|
70
|
+
hasExplicitThreadId?: boolean;
|
|
60
71
|
isModalDefaultOpen?: boolean;
|
|
61
72
|
}
|
|
62
73
|
|
|
63
74
|
// Provider component
|
|
64
75
|
export const CopilotChatConfigurationProvider: React.FC<
|
|
65
76
|
CopilotChatConfigurationProviderProps
|
|
66
|
-
> = ({
|
|
77
|
+
> = ({
|
|
78
|
+
children,
|
|
79
|
+
labels,
|
|
80
|
+
agentId,
|
|
81
|
+
threadId,
|
|
82
|
+
hasExplicitThreadId,
|
|
83
|
+
isModalDefaultOpen,
|
|
84
|
+
}) => {
|
|
67
85
|
const parentConfig = useContext(CopilotChatConfiguration);
|
|
68
86
|
|
|
69
87
|
// Stabilize labels references so that inline objects (new reference on every
|
|
@@ -92,6 +110,14 @@ export const CopilotChatConfigurationProvider: React.FC<
|
|
|
92
110
|
return randomUUID();
|
|
93
111
|
}, [threadId, parentConfig?.threadId]);
|
|
94
112
|
|
|
113
|
+
// If a caller passed `hasExplicitThreadId`, trust it verbatim (lets the v1
|
|
114
|
+
// bridge mark an auto-minted UUID as non-explicit). Otherwise infer: a
|
|
115
|
+
// threadId supplied as a prop here is by definition a caller choice.
|
|
116
|
+
const ownHasExplicitThreadId =
|
|
117
|
+
hasExplicitThreadId !== undefined ? hasExplicitThreadId : !!threadId;
|
|
118
|
+
const resolvedHasExplicitThreadId =
|
|
119
|
+
ownHasExplicitThreadId || !!parentConfig?.hasExplicitThreadId;
|
|
120
|
+
|
|
95
121
|
const resolvedDefaultOpen = isModalDefaultOpen ?? true;
|
|
96
122
|
|
|
97
123
|
const [internalModalOpen, setInternalModalOpen] =
|
|
@@ -141,6 +167,7 @@ export const CopilotChatConfigurationProvider: React.FC<
|
|
|
141
167
|
labels: mergedLabels,
|
|
142
168
|
agentId: resolvedAgentId,
|
|
143
169
|
threadId: resolvedThreadId,
|
|
170
|
+
hasExplicitThreadId: resolvedHasExplicitThreadId,
|
|
144
171
|
isModalOpen: resolvedIsModalOpen,
|
|
145
172
|
setModalOpen: resolvedSetModalOpen,
|
|
146
173
|
}),
|
|
@@ -148,6 +175,7 @@ export const CopilotChatConfigurationProvider: React.FC<
|
|
|
148
175
|
mergedLabels,
|
|
149
176
|
resolvedAgentId,
|
|
150
177
|
resolvedThreadId,
|
|
178
|
+
resolvedHasExplicitThreadId,
|
|
151
179
|
resolvedIsModalOpen,
|
|
152
180
|
resolvedSetModalOpen,
|
|
153
181
|
],
|
|
@@ -720,19 +720,10 @@ export const CopilotKitProvider: React.FC<CopilotKitProviderProps> = ({
|
|
|
720
720
|
}, []);
|
|
721
721
|
|
|
722
722
|
// Sync defaultThrottleMs to the core instance on prop changes.
|
|
723
|
-
// Initial value is set synchronously during instance creation (
|
|
724
|
-
// ref
|
|
723
|
+
// Initial value is set synchronously during instance creation (inside the
|
|
724
|
+
// ref-init block above) so child hooks see the correct value on first render.
|
|
725
725
|
// This effect handles subsequent updates when the prop changes.
|
|
726
726
|
useEffect(() => {
|
|
727
|
-
if (
|
|
728
|
-
defaultThrottleMs !== undefined &&
|
|
729
|
-
(!Number.isFinite(defaultThrottleMs) || defaultThrottleMs < 0)
|
|
730
|
-
) {
|
|
731
|
-
console.error(
|
|
732
|
-
`CopilotKitProvider: defaultThrottleMs must be a non-negative finite number, got ${defaultThrottleMs}. ` +
|
|
733
|
-
`useAgent hooks without an explicit throttleMs will fall back to unthrottled.`,
|
|
734
|
-
);
|
|
735
|
-
}
|
|
736
727
|
copilotkit.setDefaultThrottleMs(defaultThrottleMs);
|
|
737
728
|
}, [copilotkit, defaultThrottleMs]);
|
|
738
729
|
|
|
@@ -513,6 +513,112 @@ describe("CopilotChatConfigurationProvider", () => {
|
|
|
513
513
|
});
|
|
514
514
|
});
|
|
515
515
|
|
|
516
|
+
/**
|
|
517
|
+
* Regression coverage for the welcome-screen / /connect 404 bug
|
|
518
|
+
* (fix/welcome-not-showing-at-all). `hasExplicitThreadId` distinguishes a
|
|
519
|
+
* caller-chosen thread from a UUID auto-minted inside the provider chain —
|
|
520
|
+
* consumers that only make sense against a real backend thread (/connect,
|
|
521
|
+
* switch-flash suppression) must gate on this signal, not on !!threadId.
|
|
522
|
+
*/
|
|
523
|
+
describe("hasExplicitThreadId", () => {
|
|
524
|
+
function ExplicitProbe({ id = "probe" }: { id?: string } = {}) {
|
|
525
|
+
const config = useCopilotChatConfiguration();
|
|
526
|
+
return (
|
|
527
|
+
<div data-testid={`${id}-explicit`}>
|
|
528
|
+
{String(config?.hasExplicitThreadId)}
|
|
529
|
+
</div>
|
|
530
|
+
);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
it("infers true when threadId prop is supplied and hasExplicitThreadId is omitted", () => {
|
|
534
|
+
render(
|
|
535
|
+
<CopilotChatConfigurationProvider threadId="customer-thread">
|
|
536
|
+
<ExplicitProbe />
|
|
537
|
+
</CopilotChatConfigurationProvider>,
|
|
538
|
+
);
|
|
539
|
+
|
|
540
|
+
expect(screen.getByTestId("probe-explicit").textContent).toBe("true");
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
it("infers false when no threadId prop is supplied and hasExplicitThreadId is omitted", () => {
|
|
544
|
+
render(
|
|
545
|
+
<CopilotChatConfigurationProvider>
|
|
546
|
+
<ExplicitProbe />
|
|
547
|
+
</CopilotChatConfigurationProvider>,
|
|
548
|
+
);
|
|
549
|
+
|
|
550
|
+
expect(screen.getByTestId("probe-explicit").textContent).toBe("false");
|
|
551
|
+
});
|
|
552
|
+
|
|
553
|
+
it("respects hasExplicitThreadId={false} even when a threadId prop is present (v1 bridge case)", () => {
|
|
554
|
+
// The v1 <CopilotKit> wrapper always pipes a UUID through as `threadId`
|
|
555
|
+
// (from ThreadsProvider). Without this override the provider would
|
|
556
|
+
// mis-infer the UUID as explicit, causing /connect to 404 and the
|
|
557
|
+
// welcome screen to stay hidden for fresh empty chats.
|
|
558
|
+
render(
|
|
559
|
+
<CopilotChatConfigurationProvider
|
|
560
|
+
threadId="auto-minted-uuid"
|
|
561
|
+
hasExplicitThreadId={false}
|
|
562
|
+
>
|
|
563
|
+
<ExplicitProbe />
|
|
564
|
+
</CopilotChatConfigurationProvider>,
|
|
565
|
+
);
|
|
566
|
+
|
|
567
|
+
expect(screen.getByTestId("probe-explicit").textContent).toBe("false");
|
|
568
|
+
});
|
|
569
|
+
|
|
570
|
+
it("parent=true overrides child's hasExplicitThreadId={false} via OR inheritance", () => {
|
|
571
|
+
// resolvedHasExplicitThreadId = ownHasExplicit || parentHasExplicit.
|
|
572
|
+
// Once an ancestor has marked the thread as caller-chosen, descendants
|
|
573
|
+
// cannot mask that — pinning the contract so "try to hide explicitness
|
|
574
|
+
// from a child" doesn't silently work.
|
|
575
|
+
render(
|
|
576
|
+
<CopilotChatConfigurationProvider threadId="real-thread">
|
|
577
|
+
<CopilotChatConfigurationProvider
|
|
578
|
+
threadId="other-uuid"
|
|
579
|
+
hasExplicitThreadId={false}
|
|
580
|
+
>
|
|
581
|
+
<ExplicitProbe />
|
|
582
|
+
</CopilotChatConfigurationProvider>
|
|
583
|
+
</CopilotChatConfigurationProvider>,
|
|
584
|
+
);
|
|
585
|
+
|
|
586
|
+
expect(screen.getByTestId("probe-explicit").textContent).toBe("true");
|
|
587
|
+
});
|
|
588
|
+
|
|
589
|
+
it("propagates through a three-level chain where the middle provider is bare", () => {
|
|
590
|
+
// Matches the real stack: outer layout provider (no threadId) →
|
|
591
|
+
// CopilotChat's own provider (no threadId) → inner feature provider
|
|
592
|
+
// (explicit threadId). Explicitness must cross the empty middle.
|
|
593
|
+
render(
|
|
594
|
+
<CopilotChatConfigurationProvider>
|
|
595
|
+
<CopilotChatConfigurationProvider>
|
|
596
|
+
<CopilotChatConfigurationProvider threadId="deeply-picked-thread">
|
|
597
|
+
<ExplicitProbe />
|
|
598
|
+
</CopilotChatConfigurationProvider>
|
|
599
|
+
</CopilotChatConfigurationProvider>
|
|
600
|
+
</CopilotChatConfigurationProvider>,
|
|
601
|
+
);
|
|
602
|
+
|
|
603
|
+
expect(screen.getByTestId("probe-explicit").textContent).toBe("true");
|
|
604
|
+
});
|
|
605
|
+
|
|
606
|
+
it("non-explicit parent does not taint an explicit child", () => {
|
|
607
|
+
render(
|
|
608
|
+
<CopilotChatConfigurationProvider
|
|
609
|
+
threadId="auto-uuid"
|
|
610
|
+
hasExplicitThreadId={false}
|
|
611
|
+
>
|
|
612
|
+
<CopilotChatConfigurationProvider threadId="user-picked">
|
|
613
|
+
<ExplicitProbe />
|
|
614
|
+
</CopilotChatConfigurationProvider>
|
|
615
|
+
</CopilotChatConfigurationProvider>,
|
|
616
|
+
);
|
|
617
|
+
|
|
618
|
+
expect(screen.getByTestId("probe-explicit").textContent).toBe("true");
|
|
619
|
+
});
|
|
620
|
+
});
|
|
621
|
+
|
|
516
622
|
describe("Nested providers", () => {
|
|
517
623
|
it("should handle multiple nested providers correctly", () => {
|
|
518
624
|
render(
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copilotkit-BtP7w7cT.d.cts","names":[],"sources":["../src/types/frontend-action.ts","../src/hooks/use-tree.ts","../src/types/document-pointer.ts","../src/types/system-message.ts","../src/types/chat-suggestion-configuration.ts","../src/types/crew.ts","../src/types/interrupt-action.ts","../src/types/coagent-action.ts","../src/types/coagent-state.ts","../src/context/copilot-context.tsx","../src/v2/components/chat/CopilotChatAudioRecorder.tsx","../src/v2/providers/CopilotChatConfigurationProvider.tsx","../src/v2/lib/slots.tsx","../src/v2/components/chat/CopilotChatInput.tsx","../src/v2/components/chat/CopilotChatToolCallsView.tsx","../src/v2/components/chat/CopilotChatAssistantMessage.tsx","../src/v2/components/chat/CopilotChatUserMessage.tsx","../src/v2/components/chat/CopilotChatReasoningMessage.tsx","../src/v2/components/chat/CopilotChatSuggestionPill.tsx","../src/v2/components/chat/CopilotChatSuggestionView.tsx","../src/v2/components/chat/CopilotChatMessageView.tsx","../src/v2/components/chat/CopilotChatView.tsx","../src/v2/components/chat/CopilotChat.tsx","../src/v2/components/chat/CopilotChatToggleButton.tsx","../src/v2/components/chat/CopilotModalHeader.tsx","../src/v2/components/chat/CopilotSidebarView.tsx","../src/v2/components/chat/CopilotPopupView.tsx","../src/v2/components/chat/CopilotSidebar.tsx","../src/v2/components/chat/CopilotPopup.tsx","../src/v2/components/chat/CopilotChatAttachmentQueue.tsx","../src/v2/components/chat/CopilotChatAttachmentRenderer.tsx","../src/v2/components/WildcardToolCallRender.tsx","../src/v2/components/CopilotKitInspector.tsx","../src/v2/components/MCPAppsActivityRenderer.tsx","../src/v2/hooks/use-render-tool-call.tsx","../src/v2/types/react-custom-message-renderer.ts","../src/v2/hooks/use-render-custom-messages.tsx","../src/v2/types/react-tool-call-renderer.ts","../src/v2/types/react-activity-message-renderer.ts","../src/v2/types/frontend-tool.ts","../src/v2/types/human-in-the-loop.ts","../src/v2/types/defineToolCallRenderer.ts","../src/v2/types/interrupt.ts","../src/v2/types/sandbox-function.ts","../src/v2/hooks/use-render-activity-message.tsx","../src/v2/hooks/use-frontend-tool.tsx","../src/v2/hooks/use-component.tsx","../src/v2/hooks/use-render-tool.tsx","../src/v2/hooks/use-default-render-tool.tsx","../src/v2/hooks/use-human-in-the-loop.tsx","../src/v2/hooks/use-agent.tsx","../src/v2/hooks/use-capabilities.tsx","../src/v2/hooks/use-agent-context.tsx","../src/v2/hooks/use-suggestions.tsx","../src/v2/hooks/use-configure-suggestions.tsx","../src/v2/hooks/use-interrupt.tsx","../src/v2/hooks/use-threads.tsx","../src/v2/hooks/use-attachments.tsx","../src/v2/lib/react-core.ts","../src/v2/providers/CopilotKitProvider.tsx","../src/v2/providers/SandboxFunctionsContext.ts","../src/v2/a2ui/A2UIMessageRenderer.tsx","../src/components/copilot-provider/copilotkit-props.tsx","../src/components/copilot-provider/copilotkit.tsx"],"mappings":"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"}
|