@copilotkit/react-core 1.10.4 → 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 (69) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{chunk-DSDAZA3B.mjs → chunk-23SOG4FI.mjs} +4 -4
  3. package/dist/{chunk-KWS75AOU.mjs → chunk-4JBVPOHK.mjs} +2 -2
  4. package/dist/{chunk-LLLCUHOO.mjs → chunk-6INCKUL6.mjs} +6 -6
  5. package/dist/{chunk-5KVEE73R.mjs → chunk-7D4OASUM.mjs} +4 -4
  6. package/dist/{chunk-6WTWBXEJ.mjs → chunk-7LZXD5RJ.mjs} +11 -11
  7. package/dist/{chunk-QNJNOZH3.mjs → chunk-AGP7SAEE.mjs} +8 -8
  8. package/dist/{chunk-JEMBA7PE.mjs → chunk-AR7HJPGU.mjs} +4 -4
  9. package/dist/{chunk-2QZSAQTX.mjs → chunk-CLQLVMW4.mjs} +4 -4
  10. package/dist/{chunk-CLAHAV6J.mjs → chunk-FCRODLLL.mjs} +8 -8
  11. package/dist/{chunk-AALETENN.mjs → chunk-G2GQX4FI.mjs} +65 -4
  12. package/dist/chunk-G2GQX4FI.mjs.map +1 -0
  13. package/dist/{chunk-ID5JRMGN.mjs → chunk-HHLBUGRA.mjs} +2 -2
  14. package/dist/{chunk-HWM2Z3J3.mjs → chunk-KA3NCZEJ.mjs} +2 -2
  15. package/dist/{chunk-N4VN2B5S.mjs → chunk-L3I57GMV.mjs} +4 -4
  16. package/dist/{chunk-2MGJO3FY.mjs → chunk-MY2BUA6F.mjs} +6 -6
  17. package/dist/{chunk-EBSAU46C.mjs → chunk-NALRM7KT.mjs} +5 -5
  18. package/dist/components/copilot-provider/copilot-messages.mjs +3 -3
  19. package/dist/components/copilot-provider/copilotkit.js +63 -2
  20. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  21. package/dist/components/copilot-provider/copilotkit.mjs +10 -10
  22. package/dist/components/copilot-provider/index.js +63 -2
  23. package/dist/components/copilot-provider/index.js.map +1 -1
  24. package/dist/components/copilot-provider/index.mjs +10 -10
  25. package/dist/components/dev-console/console-trigger.js +63 -2
  26. package/dist/components/dev-console/console-trigger.js.map +1 -1
  27. package/dist/components/dev-console/console-trigger.mjs +3 -3
  28. package/dist/components/dev-console/developer-console-modal.mjs +2 -2
  29. package/dist/components/error-boundary/error-boundary.mjs +2 -2
  30. package/dist/components/index.js +63 -2
  31. package/dist/components/index.js.map +1 -1
  32. package/dist/components/index.mjs +10 -10
  33. package/dist/context/index.mjs +4 -4
  34. package/dist/hooks/index.mjs +31 -31
  35. package/dist/hooks/use-chat.mjs +4 -4
  36. package/dist/hooks/use-coagent-state-render.mjs +2 -2
  37. package/dist/hooks/use-coagent.mjs +15 -15
  38. package/dist/hooks/use-copilot-action.mjs +2 -2
  39. package/dist/hooks/use-copilot-authenticated-action.mjs +3 -3
  40. package/dist/hooks/use-copilot-chat-headless_c.mjs +15 -15
  41. package/dist/hooks/use-copilot-chat.mjs +15 -15
  42. package/dist/hooks/use-copilot-chat_internal.mjs +14 -14
  43. package/dist/hooks/use-langgraph-interrupt-render.mjs +1 -1
  44. package/dist/hooks/use-langgraph-interrupt.mjs +15 -15
  45. package/dist/index.js +63 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.mjs +35 -35
  48. package/dist/lib/copilot-task.mjs +12 -12
  49. package/dist/lib/index.mjs +12 -12
  50. package/dist/utils/extract.mjs +10 -10
  51. package/dist/utils/index.mjs +10 -10
  52. package/dist/utils/suggestions.mjs +10 -10
  53. package/package.json +3 -3
  54. package/src/components/dev-console/console-trigger.tsx +66 -2
  55. package/dist/chunk-AALETENN.mjs.map +0 -1
  56. /package/dist/{chunk-DSDAZA3B.mjs.map → chunk-23SOG4FI.mjs.map} +0 -0
  57. /package/dist/{chunk-KWS75AOU.mjs.map → chunk-4JBVPOHK.mjs.map} +0 -0
  58. /package/dist/{chunk-LLLCUHOO.mjs.map → chunk-6INCKUL6.mjs.map} +0 -0
  59. /package/dist/{chunk-5KVEE73R.mjs.map → chunk-7D4OASUM.mjs.map} +0 -0
  60. /package/dist/{chunk-6WTWBXEJ.mjs.map → chunk-7LZXD5RJ.mjs.map} +0 -0
  61. /package/dist/{chunk-QNJNOZH3.mjs.map → chunk-AGP7SAEE.mjs.map} +0 -0
  62. /package/dist/{chunk-JEMBA7PE.mjs.map → chunk-AR7HJPGU.mjs.map} +0 -0
  63. /package/dist/{chunk-2QZSAQTX.mjs.map → chunk-CLQLVMW4.mjs.map} +0 -0
  64. /package/dist/{chunk-CLAHAV6J.mjs.map → chunk-FCRODLLL.mjs.map} +0 -0
  65. /package/dist/{chunk-ID5JRMGN.mjs.map → chunk-HHLBUGRA.mjs.map} +0 -0
  66. /package/dist/{chunk-HWM2Z3J3.mjs.map → chunk-KA3NCZEJ.mjs.map} +0 -0
  67. /package/dist/{chunk-N4VN2B5S.mjs.map → chunk-L3I57GMV.mjs.map} +0 -0
  68. /package/dist/{chunk-2MGJO3FY.mjs.map → chunk-MY2BUA6F.mjs.map} +0 -0
  69. /package/dist/{chunk-EBSAU46C.mjs.map → chunk-NALRM7KT.mjs.map} +0 -0
package/dist/index.mjs CHANGED
@@ -3,60 +3,59 @@ import "./chunk-YPBKY4KY.mjs";
3
3
  import "./chunk-LUGEI4YQ.mjs";
4
4
  import {
5
5
  CopilotTask
6
- } from "./chunk-5KVEE73R.mjs";
6
+ } from "./chunk-7D4OASUM.mjs";
7
7
  import "./chunk-6YOKPWQ7.mjs";
8
8
  import "./chunk-KDAZGZ24.mjs";
9
- import {
10
- useCopilotReadable
11
- } from "./chunk-36FJAVOF.mjs";
12
9
  import {
13
10
  useLangGraphInterrupt
14
- } from "./chunk-EBSAU46C.mjs";
11
+ } from "./chunk-NALRM7KT.mjs";
15
12
  import {
16
13
  useMakeCopilotDocumentReadable
17
14
  } from "./chunk-CXDK6XA5.mjs";
18
- import {
19
- useCoAgentStateRender
20
- } from "./chunk-2QZSAQTX.mjs";
21
- import {
22
- runAgent,
23
- startAgent,
24
- stopAgent,
25
- useCoAgent
26
- } from "./chunk-QNJNOZH3.mjs";
27
15
  import {
28
16
  useCopilotAdditionalInstructions
29
17
  } from "./chunk-MZ37BAAE.mjs";
30
18
  import {
31
19
  useCopilotAuthenticatedAction_c
32
- } from "./chunk-KWS75AOU.mjs";
20
+ } from "./chunk-4JBVPOHK.mjs";
33
21
  import {
34
22
  useCopilotAction
35
- } from "./chunk-JEMBA7PE.mjs";
23
+ } from "./chunk-AR7HJPGU.mjs";
36
24
  import {
37
25
  useCopilotChatHeadless_c
38
- } from "./chunk-ID5JRMGN.mjs";
26
+ } from "./chunk-HHLBUGRA.mjs";
39
27
  import {
40
28
  useCopilotChat as useCopilotChat2
41
- } from "./chunk-HWM2Z3J3.mjs";
29
+ } from "./chunk-KA3NCZEJ.mjs";
30
+ import {
31
+ useCopilotReadable
32
+ } from "./chunk-36FJAVOF.mjs";
33
+ import {
34
+ useCoAgentStateRender
35
+ } from "./chunk-CLQLVMW4.mjs";
36
+ import {
37
+ runAgent,
38
+ startAgent,
39
+ stopAgent,
40
+ useCoAgent
41
+ } from "./chunk-AGP7SAEE.mjs";
42
42
  import {
43
43
  useCopilotChat
44
- } from "./chunk-CLAHAV6J.mjs";
44
+ } from "./chunk-FCRODLLL.mjs";
45
45
  import {
46
46
  useLangGraphInterruptRender
47
47
  } from "./chunk-QF3Q5LUN.mjs";
48
- import "./chunk-LLLCUHOO.mjs";
49
- import "./chunk-4CEQJ2X6.mjs";
48
+ import "./chunk-YPSGKPDA.mjs";
50
49
  import {
51
50
  CopilotKit,
52
51
  defaultCopilotContextCategories,
53
52
  extract,
54
53
  reloadSuggestions
55
- } from "./chunk-6WTWBXEJ.mjs";
56
- import "./chunk-N4VN2B5S.mjs";
57
- import "./chunk-2MGJO3FY.mjs";
58
- import "./chunk-AALETENN.mjs";
59
- import "./chunk-DSDAZA3B.mjs";
54
+ } from "./chunk-7LZXD5RJ.mjs";
55
+ import "./chunk-L3I57GMV.mjs";
56
+ import "./chunk-MY2BUA6F.mjs";
57
+ import "./chunk-G2GQX4FI.mjs";
58
+ import "./chunk-23SOG4FI.mjs";
60
59
  import "./chunk-PIF5KJYI.mjs";
61
60
  import {
62
61
  SUGGESTION_RETRY_CONFIG
@@ -64,25 +63,26 @@ import {
64
63
  import "./chunk-PMAFHQ7P.mjs";
65
64
  import "./chunk-5FHSUKQL.mjs";
66
65
  import "./chunk-RKTVJRK7.mjs";
66
+ import {
67
+ CopilotMessagesContext,
68
+ useCopilotMessagesContext
69
+ } from "./chunk-ZLQVRPDS.mjs";
70
+ import "./chunk-6ZLPNY7X.mjs";
71
+ import "./chunk-6INCKUL6.mjs";
72
+ import "./chunk-4CEQJ2X6.mjs";
73
+ import "./chunk-N4WEHORG.mjs";
74
+ import "./chunk-O7ARI5CV.mjs";
67
75
  import {
68
76
  useCopilotRuntimeClient
69
77
  } from "./chunk-Q3MCVRO3.mjs";
70
78
  import {
71
79
  shouldShowDevConsole
72
80
  } from "./chunk-ICIK2BSB.mjs";
73
- import "./chunk-N4WEHORG.mjs";
74
- import "./chunk-O7ARI5CV.mjs";
75
- import "./chunk-EFL5OBKN.mjs";
76
- import "./chunk-6ZLPNY7X.mjs";
77
- import "./chunk-YPSGKPDA.mjs";
78
81
  import {
79
82
  CopilotContext,
80
83
  useCopilotContext
81
84
  } from "./chunk-YHT6CWIY.mjs";
82
- import {
83
- CopilotMessagesContext,
84
- useCopilotMessagesContext
85
- } from "./chunk-ZLQVRPDS.mjs";
85
+ import "./chunk-EFL5OBKN.mjs";
86
86
  import "./chunk-SKC7AJIV.mjs";
87
87
  export {
88
88
  CopilotContext,
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  CopilotTask
3
- } from "../chunk-5KVEE73R.mjs";
4
- import "../chunk-4CEQJ2X6.mjs";
5
- import "../chunk-6WTWBXEJ.mjs";
6
- import "../chunk-N4VN2B5S.mjs";
7
- import "../chunk-2MGJO3FY.mjs";
8
- import "../chunk-AALETENN.mjs";
9
- import "../chunk-DSDAZA3B.mjs";
3
+ } from "../chunk-7D4OASUM.mjs";
4
+ import "../chunk-7LZXD5RJ.mjs";
5
+ import "../chunk-L3I57GMV.mjs";
6
+ import "../chunk-MY2BUA6F.mjs";
7
+ import "../chunk-G2GQX4FI.mjs";
8
+ import "../chunk-23SOG4FI.mjs";
10
9
  import "../chunk-PIF5KJYI.mjs";
11
10
  import "../chunk-2IDV5OHF.mjs";
12
11
  import "../chunk-PMAFHQ7P.mjs";
13
12
  import "../chunk-5FHSUKQL.mjs";
14
13
  import "../chunk-RKTVJRK7.mjs";
15
- import "../chunk-Q3MCVRO3.mjs";
16
- import "../chunk-ICIK2BSB.mjs";
14
+ import "../chunk-ZLQVRPDS.mjs";
15
+ import "../chunk-6ZLPNY7X.mjs";
16
+ import "../chunk-4CEQJ2X6.mjs";
17
17
  import "../chunk-N4WEHORG.mjs";
18
18
  import "../chunk-O7ARI5CV.mjs";
19
- import "../chunk-EFL5OBKN.mjs";
20
- import "../chunk-6ZLPNY7X.mjs";
19
+ import "../chunk-Q3MCVRO3.mjs";
20
+ import "../chunk-ICIK2BSB.mjs";
21
21
  import "../chunk-YHT6CWIY.mjs";
22
- import "../chunk-ZLQVRPDS.mjs";
22
+ import "../chunk-EFL5OBKN.mjs";
23
23
  import "../chunk-SKC7AJIV.mjs";
24
24
  export {
25
25
  CopilotTask
@@ -1,26 +1,26 @@
1
1
  import "../chunk-LUGEI4YQ.mjs";
2
2
  import {
3
3
  CopilotTask
4
- } from "../chunk-5KVEE73R.mjs";
5
- import "../chunk-4CEQJ2X6.mjs";
6
- import "../chunk-6WTWBXEJ.mjs";
7
- import "../chunk-N4VN2B5S.mjs";
8
- import "../chunk-2MGJO3FY.mjs";
9
- import "../chunk-AALETENN.mjs";
10
- import "../chunk-DSDAZA3B.mjs";
4
+ } from "../chunk-7D4OASUM.mjs";
5
+ import "../chunk-7LZXD5RJ.mjs";
6
+ import "../chunk-L3I57GMV.mjs";
7
+ import "../chunk-MY2BUA6F.mjs";
8
+ import "../chunk-G2GQX4FI.mjs";
9
+ import "../chunk-23SOG4FI.mjs";
11
10
  import "../chunk-PIF5KJYI.mjs";
12
11
  import "../chunk-2IDV5OHF.mjs";
13
12
  import "../chunk-PMAFHQ7P.mjs";
14
13
  import "../chunk-5FHSUKQL.mjs";
15
14
  import "../chunk-RKTVJRK7.mjs";
16
- import "../chunk-Q3MCVRO3.mjs";
17
- import "../chunk-ICIK2BSB.mjs";
15
+ import "../chunk-ZLQVRPDS.mjs";
16
+ import "../chunk-6ZLPNY7X.mjs";
17
+ import "../chunk-4CEQJ2X6.mjs";
18
18
  import "../chunk-N4WEHORG.mjs";
19
19
  import "../chunk-O7ARI5CV.mjs";
20
- import "../chunk-EFL5OBKN.mjs";
21
- import "../chunk-6ZLPNY7X.mjs";
20
+ import "../chunk-Q3MCVRO3.mjs";
21
+ import "../chunk-ICIK2BSB.mjs";
22
22
  import "../chunk-YHT6CWIY.mjs";
23
- import "../chunk-ZLQVRPDS.mjs";
23
+ import "../chunk-EFL5OBKN.mjs";
24
24
  import "../chunk-SKC7AJIV.mjs";
25
25
  export {
26
26
  CopilotTask
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  extract
3
- } from "../chunk-6WTWBXEJ.mjs";
4
- import "../chunk-N4VN2B5S.mjs";
5
- import "../chunk-2MGJO3FY.mjs";
6
- import "../chunk-AALETENN.mjs";
7
- import "../chunk-DSDAZA3B.mjs";
3
+ } from "../chunk-7LZXD5RJ.mjs";
4
+ import "../chunk-L3I57GMV.mjs";
5
+ import "../chunk-MY2BUA6F.mjs";
6
+ import "../chunk-G2GQX4FI.mjs";
7
+ import "../chunk-23SOG4FI.mjs";
8
8
  import "../chunk-PIF5KJYI.mjs";
9
9
  import "../chunk-2IDV5OHF.mjs";
10
10
  import "../chunk-PMAFHQ7P.mjs";
11
11
  import "../chunk-5FHSUKQL.mjs";
12
12
  import "../chunk-RKTVJRK7.mjs";
13
- import "../chunk-Q3MCVRO3.mjs";
14
- import "../chunk-ICIK2BSB.mjs";
13
+ import "../chunk-ZLQVRPDS.mjs";
14
+ import "../chunk-6ZLPNY7X.mjs";
15
15
  import "../chunk-N4WEHORG.mjs";
16
16
  import "../chunk-O7ARI5CV.mjs";
17
- import "../chunk-EFL5OBKN.mjs";
18
- import "../chunk-6ZLPNY7X.mjs";
17
+ import "../chunk-Q3MCVRO3.mjs";
18
+ import "../chunk-ICIK2BSB.mjs";
19
19
  import "../chunk-YHT6CWIY.mjs";
20
- import "../chunk-ZLQVRPDS.mjs";
20
+ import "../chunk-EFL5OBKN.mjs";
21
21
  import "../chunk-SKC7AJIV.mjs";
22
22
  export {
23
23
  extract
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  extract,
3
3
  reloadSuggestions
4
- } from "../chunk-6WTWBXEJ.mjs";
5
- import "../chunk-N4VN2B5S.mjs";
6
- import "../chunk-2MGJO3FY.mjs";
7
- import "../chunk-AALETENN.mjs";
8
- import "../chunk-DSDAZA3B.mjs";
4
+ } from "../chunk-7LZXD5RJ.mjs";
5
+ import "../chunk-L3I57GMV.mjs";
6
+ import "../chunk-MY2BUA6F.mjs";
7
+ import "../chunk-G2GQX4FI.mjs";
8
+ import "../chunk-23SOG4FI.mjs";
9
9
  import "../chunk-PIF5KJYI.mjs";
10
10
  import {
11
11
  SUGGESTION_RETRY_CONFIG
@@ -13,16 +13,16 @@ import {
13
13
  import "../chunk-PMAFHQ7P.mjs";
14
14
  import "../chunk-5FHSUKQL.mjs";
15
15
  import "../chunk-RKTVJRK7.mjs";
16
+ import "../chunk-ZLQVRPDS.mjs";
17
+ import "../chunk-6ZLPNY7X.mjs";
18
+ import "../chunk-N4WEHORG.mjs";
19
+ import "../chunk-O7ARI5CV.mjs";
16
20
  import "../chunk-Q3MCVRO3.mjs";
17
21
  import {
18
22
  shouldShowDevConsole
19
23
  } from "../chunk-ICIK2BSB.mjs";
20
- import "../chunk-N4WEHORG.mjs";
21
- import "../chunk-O7ARI5CV.mjs";
22
- import "../chunk-EFL5OBKN.mjs";
23
- import "../chunk-6ZLPNY7X.mjs";
24
24
  import "../chunk-YHT6CWIY.mjs";
25
- import "../chunk-ZLQVRPDS.mjs";
25
+ import "../chunk-EFL5OBKN.mjs";
26
26
  import "../chunk-SKC7AJIV.mjs";
27
27
  export {
28
28
  SUGGESTION_RETRY_CONFIG,
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  reloadSuggestions
3
- } from "../chunk-6WTWBXEJ.mjs";
4
- import "../chunk-N4VN2B5S.mjs";
5
- import "../chunk-2MGJO3FY.mjs";
6
- import "../chunk-AALETENN.mjs";
7
- import "../chunk-DSDAZA3B.mjs";
3
+ } from "../chunk-7LZXD5RJ.mjs";
4
+ import "../chunk-L3I57GMV.mjs";
5
+ import "../chunk-MY2BUA6F.mjs";
6
+ import "../chunk-G2GQX4FI.mjs";
7
+ import "../chunk-23SOG4FI.mjs";
8
8
  import "../chunk-PIF5KJYI.mjs";
9
9
  import "../chunk-2IDV5OHF.mjs";
10
10
  import "../chunk-PMAFHQ7P.mjs";
11
11
  import "../chunk-5FHSUKQL.mjs";
12
12
  import "../chunk-RKTVJRK7.mjs";
13
- import "../chunk-Q3MCVRO3.mjs";
14
- import "../chunk-ICIK2BSB.mjs";
13
+ import "../chunk-ZLQVRPDS.mjs";
14
+ import "../chunk-6ZLPNY7X.mjs";
15
15
  import "../chunk-N4WEHORG.mjs";
16
16
  import "../chunk-O7ARI5CV.mjs";
17
- import "../chunk-EFL5OBKN.mjs";
18
- import "../chunk-6ZLPNY7X.mjs";
17
+ import "../chunk-Q3MCVRO3.mjs";
18
+ import "../chunk-ICIK2BSB.mjs";
19
19
  import "../chunk-YHT6CWIY.mjs";
20
- import "../chunk-ZLQVRPDS.mjs";
20
+ import "../chunk-EFL5OBKN.mjs";
21
21
  import "../chunk-SKC7AJIV.mjs";
22
22
  export {
23
23
  reloadSuggestions
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
- "version": "1.10.4",
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",
51
- "@copilotkit/shared": "1.10.4"
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":[]}