@copilotkit/react-core 1.10.4-next.3 → 1.10.5-next.0

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{chunk-52UQCG24.mjs → chunk-7D4OASUM.mjs} +2 -2
  3. package/dist/{chunk-T6ACM7RS.mjs → chunk-7LZXD5RJ.mjs} +2 -2
  4. package/dist/{chunk-UZ62I7O3.mjs → chunk-AGP7SAEE.mjs} +2 -2
  5. package/dist/{chunk-3ST7A2EK.mjs → chunk-FCRODLLL.mjs} +2 -2
  6. package/dist/{chunk-TWVUO4RV.mjs → chunk-G2GQX4FI.mjs} +64 -3
  7. package/dist/chunk-G2GQX4FI.mjs.map +1 -0
  8. package/dist/{chunk-3HV6BY52.mjs → chunk-HHLBUGRA.mjs} +2 -2
  9. package/dist/{chunk-LPSDRNU4.mjs → chunk-KA3NCZEJ.mjs} +2 -2
  10. package/dist/{chunk-XVFOGJIP.mjs → chunk-NALRM7KT.mjs} +2 -2
  11. package/dist/components/copilot-provider/copilotkit.js +63 -2
  12. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  13. package/dist/components/copilot-provider/copilotkit.mjs +2 -2
  14. package/dist/components/copilot-provider/index.js +63 -2
  15. package/dist/components/copilot-provider/index.js.map +1 -1
  16. package/dist/components/copilot-provider/index.mjs +2 -2
  17. package/dist/components/dev-console/console-trigger.js +63 -2
  18. package/dist/components/dev-console/console-trigger.js.map +1 -1
  19. package/dist/components/dev-console/console-trigger.mjs +1 -1
  20. package/dist/components/index.js +63 -2
  21. package/dist/components/index.js.map +1 -1
  22. package/dist/components/index.mjs +2 -2
  23. package/dist/hooks/index.mjs +7 -7
  24. package/dist/hooks/use-coagent.mjs +4 -4
  25. package/dist/hooks/use-copilot-chat-headless_c.mjs +4 -4
  26. package/dist/hooks/use-copilot-chat.mjs +4 -4
  27. package/dist/hooks/use-copilot-chat_internal.mjs +3 -3
  28. package/dist/hooks/use-langgraph-interrupt.mjs +4 -4
  29. package/dist/index.js +63 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.mjs +8 -8
  32. package/dist/lib/copilot-task.mjs +3 -3
  33. package/dist/lib/index.mjs +3 -3
  34. package/dist/utils/extract.mjs +2 -2
  35. package/dist/utils/index.mjs +2 -2
  36. package/dist/utils/suggestions.mjs +2 -2
  37. package/package.json +3 -3
  38. package/src/components/dev-console/console-trigger.tsx +66 -2
  39. package/dist/chunk-TWVUO4RV.mjs.map +0 -1
  40. /package/dist/{chunk-52UQCG24.mjs.map → chunk-7D4OASUM.mjs.map} +0 -0
  41. /package/dist/{chunk-T6ACM7RS.mjs.map → chunk-7LZXD5RJ.mjs.map} +0 -0
  42. /package/dist/{chunk-UZ62I7O3.mjs.map → chunk-AGP7SAEE.mjs.map} +0 -0
  43. /package/dist/{chunk-3ST7A2EK.mjs.map → chunk-FCRODLLL.mjs.map} +0 -0
  44. /package/dist/{chunk-3HV6BY52.mjs.map → chunk-HHLBUGRA.mjs.map} +0 -0
  45. /package/dist/{chunk-LPSDRNU4.mjs.map → chunk-KA3NCZEJ.mjs.map} +0 -0
  46. /package/dist/{chunk-XVFOGJIP.mjs.map → chunk-NALRM7KT.mjs.map} +0 -0
package/dist/index.mjs CHANGED
@@ -3,12 +3,12 @@ import "./chunk-YPBKY4KY.mjs";
3
3
  import "./chunk-LUGEI4YQ.mjs";
4
4
  import {
5
5
  CopilotTask
6
- } from "./chunk-52UQCG24.mjs";
6
+ } from "./chunk-7D4OASUM.mjs";
7
7
  import "./chunk-6YOKPWQ7.mjs";
8
8
  import "./chunk-KDAZGZ24.mjs";
9
9
  import {
10
10
  useLangGraphInterrupt
11
- } from "./chunk-XVFOGJIP.mjs";
11
+ } from "./chunk-NALRM7KT.mjs";
12
12
  import {
13
13
  useMakeCopilotDocumentReadable
14
14
  } from "./chunk-CXDK6XA5.mjs";
@@ -23,10 +23,10 @@ import {
23
23
  } from "./chunk-AR7HJPGU.mjs";
24
24
  import {
25
25
  useCopilotChatHeadless_c
26
- } from "./chunk-3HV6BY52.mjs";
26
+ } from "./chunk-HHLBUGRA.mjs";
27
27
  import {
28
28
  useCopilotChat as useCopilotChat2
29
- } from "./chunk-LPSDRNU4.mjs";
29
+ } from "./chunk-KA3NCZEJ.mjs";
30
30
  import {
31
31
  useCopilotReadable
32
32
  } from "./chunk-36FJAVOF.mjs";
@@ -38,10 +38,10 @@ import {
38
38
  startAgent,
39
39
  stopAgent,
40
40
  useCoAgent
41
- } from "./chunk-UZ62I7O3.mjs";
41
+ } from "./chunk-AGP7SAEE.mjs";
42
42
  import {
43
43
  useCopilotChat
44
- } from "./chunk-3ST7A2EK.mjs";
44
+ } from "./chunk-FCRODLLL.mjs";
45
45
  import {
46
46
  useLangGraphInterruptRender
47
47
  } from "./chunk-QF3Q5LUN.mjs";
@@ -51,10 +51,10 @@ import {
51
51
  defaultCopilotContextCategories,
52
52
  extract,
53
53
  reloadSuggestions
54
- } from "./chunk-T6ACM7RS.mjs";
54
+ } from "./chunk-7LZXD5RJ.mjs";
55
55
  import "./chunk-L3I57GMV.mjs";
56
56
  import "./chunk-MY2BUA6F.mjs";
57
- import "./chunk-TWVUO4RV.mjs";
57
+ import "./chunk-G2GQX4FI.mjs";
58
58
  import "./chunk-23SOG4FI.mjs";
59
59
  import "./chunk-PIF5KJYI.mjs";
60
60
  import {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  CopilotTask
3
- } from "../chunk-52UQCG24.mjs";
4
- import "../chunk-T6ACM7RS.mjs";
3
+ } from "../chunk-7D4OASUM.mjs";
4
+ import "../chunk-7LZXD5RJ.mjs";
5
5
  import "../chunk-L3I57GMV.mjs";
6
6
  import "../chunk-MY2BUA6F.mjs";
7
- import "../chunk-TWVUO4RV.mjs";
7
+ import "../chunk-G2GQX4FI.mjs";
8
8
  import "../chunk-23SOG4FI.mjs";
9
9
  import "../chunk-PIF5KJYI.mjs";
10
10
  import "../chunk-2IDV5OHF.mjs";
@@ -1,11 +1,11 @@
1
1
  import "../chunk-LUGEI4YQ.mjs";
2
2
  import {
3
3
  CopilotTask
4
- } from "../chunk-52UQCG24.mjs";
5
- import "../chunk-T6ACM7RS.mjs";
4
+ } from "../chunk-7D4OASUM.mjs";
5
+ import "../chunk-7LZXD5RJ.mjs";
6
6
  import "../chunk-L3I57GMV.mjs";
7
7
  import "../chunk-MY2BUA6F.mjs";
8
- import "../chunk-TWVUO4RV.mjs";
8
+ import "../chunk-G2GQX4FI.mjs";
9
9
  import "../chunk-23SOG4FI.mjs";
10
10
  import "../chunk-PIF5KJYI.mjs";
11
11
  import "../chunk-2IDV5OHF.mjs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  extract
3
- } from "../chunk-T6ACM7RS.mjs";
3
+ } from "../chunk-7LZXD5RJ.mjs";
4
4
  import "../chunk-L3I57GMV.mjs";
5
5
  import "../chunk-MY2BUA6F.mjs";
6
- import "../chunk-TWVUO4RV.mjs";
6
+ import "../chunk-G2GQX4FI.mjs";
7
7
  import "../chunk-23SOG4FI.mjs";
8
8
  import "../chunk-PIF5KJYI.mjs";
9
9
  import "../chunk-2IDV5OHF.mjs";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  extract,
3
3
  reloadSuggestions
4
- } from "../chunk-T6ACM7RS.mjs";
4
+ } from "../chunk-7LZXD5RJ.mjs";
5
5
  import "../chunk-L3I57GMV.mjs";
6
6
  import "../chunk-MY2BUA6F.mjs";
7
- import "../chunk-TWVUO4RV.mjs";
7
+ import "../chunk-G2GQX4FI.mjs";
8
8
  import "../chunk-23SOG4FI.mjs";
9
9
  import "../chunk-PIF5KJYI.mjs";
10
10
  import {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  reloadSuggestions
3
- } from "../chunk-T6ACM7RS.mjs";
3
+ } from "../chunk-7LZXD5RJ.mjs";
4
4
  import "../chunk-L3I57GMV.mjs";
5
5
  import "../chunk-MY2BUA6F.mjs";
6
- import "../chunk-TWVUO4RV.mjs";
6
+ import "../chunk-G2GQX4FI.mjs";
7
7
  import "../chunk-23SOG4FI.mjs";
8
8
  import "../chunk-PIF5KJYI.mjs";
9
9
  import "../chunk-2IDV5OHF.mjs";
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
- "version": "1.10.4-next.3",
12
+ "version": "1.10.5-next.0",
13
13
  "sideEffects": false,
14
14
  "main": "./dist/index.js",
15
15
  "module": "./dist/index.mjs",
@@ -47,8 +47,8 @@
47
47
  "@scarf/scarf": "^1.3.0",
48
48
  "react-markdown": "^8.0.7",
49
49
  "untruncate-json": "^0.0.1",
50
- "@copilotkit/runtime-client-gql": "1.10.4-next.3",
51
- "@copilotkit/shared": "1.10.4-next.3"
50
+ "@copilotkit/runtime-client-gql": "1.10.5-next.0",
51
+ "@copilotkit/shared": "1.10.5-next.0"
52
52
  },
53
53
  "keywords": [
54
54
  "copilotkit",
@@ -5,6 +5,9 @@ import { useCopilotContext } from "../../context/copilot-context";
5
5
  import { CopilotKitIcon } from "./icons";
6
6
  import { DeveloperConsoleModal } from "./developer-console-modal";
7
7
 
8
+ // Storage key for hiding the Inspector trigger/modal
9
+ const INSPECTOR_HIDE_KEY = "cpk:inspector:hidden";
10
+
8
11
  interface ConsoleTriggerProps {
9
12
  position?: "bottom-left" | "bottom-right";
10
13
  }
@@ -17,6 +20,7 @@ export function ConsoleTrigger({ position = "bottom-right" }: ConsoleTriggerProp
17
20
  const [isDragging, setIsDragging] = useState(false);
18
21
  const [buttonPosition, setButtonPosition] = useState<{ x: number; y: number } | null>(null);
19
22
  const [mounted, setMounted] = useState(false);
23
+ const [isHidden, setIsHidden] = useState(false);
20
24
 
21
25
  const dragRef = useRef<{
22
26
  startX: number;
@@ -29,6 +33,15 @@ export function ConsoleTrigger({ position = "bottom-right" }: ConsoleTriggerProp
29
33
  // Initialize on client side only
30
34
  useEffect(() => {
31
35
  setMounted(true);
36
+ try {
37
+ const hidden =
38
+ typeof window !== "undefined" ? localStorage.getItem(INSPECTOR_HIDE_KEY) : null;
39
+ if (hidden === "1" || hidden === "true") {
40
+ setIsHidden(true);
41
+ }
42
+ } catch {
43
+ // ignore
44
+ }
32
45
  if (typeof window !== "undefined" && !buttonPosition) {
33
46
  const buttonSize = 60;
34
47
  const margin = 24;
@@ -96,7 +109,7 @@ export function ConsoleTrigger({ position = "bottom-right" }: ConsoleTriggerProp
96
109
  }, [isDragging]);
97
110
 
98
111
  // Don't render until mounted and position is initialized
99
- if (!mounted || !buttonPosition) {
112
+ if (!mounted || !buttonPosition || isHidden) {
100
113
  return null;
101
114
  }
102
115
 
@@ -104,11 +117,26 @@ export function ConsoleTrigger({ position = "bottom-right" }: ConsoleTriggerProp
104
117
  <>
105
118
  <button
106
119
  ref={buttonRef}
107
- onClick={() => {
120
+ onClick={(e) => {
108
121
  if (!isDragging) {
122
+ // Modifier-click hides
123
+ if (e.metaKey || e.altKey) {
124
+ try {
125
+ localStorage.setItem(INSPECTOR_HIDE_KEY, "1");
126
+ } catch {}
127
+ setIsHidden(true);
128
+ return;
129
+ }
109
130
  setIsModalOpen(true);
110
131
  }
111
132
  }}
133
+ onContextMenu={(e) => {
134
+ e.preventDefault();
135
+ try {
136
+ localStorage.setItem(INSPECTOR_HIDE_KEY, "1");
137
+ } catch {}
138
+ setIsHidden(true);
139
+ }}
112
140
  onMouseDown={handleMouseDown}
113
141
  onMouseEnter={() => setIsHovered(true)}
114
142
  onMouseLeave={() => setIsHovered(false)}
@@ -146,6 +174,42 @@ export function ConsoleTrigger({ position = "bottom-right" }: ConsoleTriggerProp
146
174
  : "Inspector (License Key Required, Drag to move)"
147
175
  }
148
176
  >
177
+ {/* Close (hide) control */}
178
+ <div
179
+ onClick={(e) => {
180
+ e.preventDefault();
181
+ e.stopPropagation();
182
+ try {
183
+ localStorage.setItem(INSPECTOR_HIDE_KEY, "1");
184
+ } catch {
185
+ // ignore
186
+ }
187
+ setIsHidden(true);
188
+ }}
189
+ style={{
190
+ position: "absolute",
191
+ bottom: "2px",
192
+ right: "2px",
193
+ width: "20px",
194
+ height: "20px",
195
+ borderRadius: "50%",
196
+ background: "#ffffff",
197
+ color: "#ef4444",
198
+ fontSize: "14px",
199
+ lineHeight: "18px",
200
+ textAlign: "center",
201
+ boxShadow: "0 2px 6px rgba(0,0,0,0.35)",
202
+ cursor: "pointer",
203
+ border: "1px solid #e5e7eb",
204
+ display: "flex",
205
+ alignItems: "center",
206
+ justifyContent: "center",
207
+ zIndex: 1,
208
+ }}
209
+ title="Hide Inspector"
210
+ >
211
+ ×
212
+ </div>
149
213
  <div
150
214
  style={{
151
215
  width: "28px",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/dev-console/console-trigger.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport { useCopilotContext } from \"../../context/copilot-context\";\nimport { CopilotKitIcon } from \"./icons\";\nimport { DeveloperConsoleModal } from \"./developer-console-modal\";\n\ninterface ConsoleTriggerProps {\n position?: \"bottom-left\" | \"bottom-right\";\n}\n\nexport function ConsoleTrigger({ position = \"bottom-right\" }: ConsoleTriggerProps) {\n const context = useCopilotContext();\n const hasApiKey = Boolean(context.copilotApiConfig.publicApiKey);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n const [isDragging, setIsDragging] = useState(false);\n const [buttonPosition, setButtonPosition] = useState<{ x: number; y: number } | null>(null);\n const [mounted, setMounted] = useState(false);\n\n const dragRef = useRef<{\n startX: number;\n startY: number;\n buttonX: number;\n buttonY: number;\n } | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // Initialize on client side only\n useEffect(() => {\n setMounted(true);\n if (typeof window !== \"undefined\" && !buttonPosition) {\n const buttonSize = 60;\n const margin = 24;\n\n const initialPosition = {\n x: margin,\n y: window.innerHeight - buttonSize - margin,\n };\n\n setButtonPosition(initialPosition);\n }\n }, [position]);\n\n const handleMouseDown = (e: React.MouseEvent) => {\n e.preventDefault();\n if (!buttonPosition) return;\n\n dragRef.current = {\n startX: e.clientX,\n startY: e.clientY,\n buttonX: buttonPosition.x,\n buttonY: buttonPosition.y,\n };\n setIsDragging(true);\n };\n\n useEffect(() => {\n if (!isDragging) return;\n\n const handleMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!dragRef.current) return;\n\n const deltaX = e.clientX - dragRef.current.startX;\n const deltaY = e.clientY - dragRef.current.startY;\n\n // Calculate new position\n let newX = dragRef.current.buttonX + deltaX;\n let newY = dragRef.current.buttonY + deltaY;\n\n // Keep button within viewport bounds\n newX = Math.max(0, Math.min(newX, window.innerWidth - 60));\n newY = Math.max(0, Math.min(newY, window.innerHeight - 60));\n\n setButtonPosition({ x: newX, y: newY });\n };\n\n const handleMouseUp = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n dragRef.current = null;\n };\n\n // Use capture phase to intercept events before they reach other handlers\n document.addEventListener(\"mousemove\", handleMouseMove, { capture: true, passive: false });\n document.addEventListener(\"mouseup\", handleMouseUp, { capture: true, passive: false });\n\n return () => {\n document.removeEventListener(\"mousemove\", handleMouseMove, { capture: true });\n document.removeEventListener(\"mouseup\", handleMouseUp, { capture: true });\n };\n }, [isDragging]);\n\n // Don't render until mounted and position is initialized\n if (!mounted || !buttonPosition) {\n return null;\n }\n\n return (\n <>\n <button\n ref={buttonRef}\n onClick={() => {\n if (!isDragging) {\n setIsModalOpen(true);\n }\n }}\n onMouseDown={handleMouseDown}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n style={{\n position: \"fixed\",\n left: `${buttonPosition.x}px`,\n top: `${buttonPosition.y}px`,\n zIndex: 2147483647,\n width: \"60px\",\n height: \"60px\",\n background: isDragging ? \"#000000\" : isHovered ? \"#111111\" : \"#000000\",\n color: \"white\",\n borderRadius: \"50%\",\n boxShadow: isDragging\n ? \"0 8px 32px rgba(0, 0, 0, 0.6), 0 4px 16px rgba(0, 0, 0, 0.4)\"\n : isHovered\n ? \"0 12px 40px rgba(0, 0, 0, 0.7), 0 6px 20px rgba(0, 0, 0, 0.5)\"\n : \"0 6px 20px rgba(0, 0, 0, 0.5), 0 3px 10px rgba(0, 0, 0, 0.3)\",\n transition: isDragging ? \"none\" : \"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: \"none\",\n cursor: isDragging ? \"grabbing\" : \"grab\",\n opacity: 1,\n userSelect: \"none\",\n transform: isDragging ? \"scale(1.05)\" : isHovered ? \"scale(1.1)\" : \"scale(1)\",\n backdropFilter: \"blur(10px)\",\n pointerEvents: \"auto\",\n isolation: \"isolate\",\n }}\n title={\n hasApiKey\n ? \"Open Inspector (Drag to move)\"\n : \"Inspector (License Key Required, Drag to move)\"\n }\n >\n <div\n style={{\n width: \"28px\",\n height: \"28px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n filter: \"drop-shadow(0 2px 4px rgba(0,0,0,0.2))\",\n }}\n >\n <CopilotKitIcon />\n </div>\n {!hasApiKey && (\n <div\n style={{\n position: \"absolute\",\n top: \"-2px\",\n right: \"-2px\",\n width: \"18px\",\n height: \"18px\",\n background: \"linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%)\",\n borderRadius: \"50%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n boxShadow: \"0 2px 8px rgba(255, 107, 107, 0.4)\",\n border: \"2px solid white\",\n }}\n >\n <span style={{ fontSize: \"10px\", color: \"white\", fontWeight: \"bold\" }}>!</span>\n </div>\n )}\n </button>\n\n <DeveloperConsoleModal\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n hasApiKey={hasApiKey}\n />\n </>\n );\n}\n"],"mappings":"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","names":[]}