@copilotkit/react-core 1.10.0-next.9 → 1.10.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 (118) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/dist/{chunk-VH45SC6Z.mjs → chunk-2GRWTU7W.mjs} +2 -2
  3. package/dist/chunk-3BASANUO.mjs +170 -0
  4. package/dist/chunk-3BASANUO.mjs.map +1 -0
  5. package/dist/{chunk-PHIMGB3K.mjs → chunk-5P46WS5M.mjs} +25 -19
  6. package/dist/chunk-5P46WS5M.mjs.map +1 -0
  7. package/dist/{chunk-AWFAFFO5.mjs → chunk-6ZLPNY7X.mjs} +7 -3
  8. package/dist/chunk-6ZLPNY7X.mjs.map +1 -0
  9. package/dist/{chunk-TTI4Z6GK.mjs → chunk-BEFEBKKI.mjs} +7 -7
  10. package/dist/chunk-BEFEBKKI.mjs.map +1 -0
  11. package/dist/{chunk-VSH4JSN3.mjs → chunk-F26O2HTO.mjs} +13 -7
  12. package/dist/chunk-F26O2HTO.mjs.map +1 -0
  13. package/dist/{chunk-GRCHDHC4.mjs → chunk-JY3STRON.mjs} +22 -4
  14. package/dist/chunk-JY3STRON.mjs.map +1 -0
  15. package/dist/{chunk-ZTZJIDRJ.mjs → chunk-N4VN2B5S.mjs} +2 -2
  16. package/dist/{chunk-FTP6FDYS.mjs → chunk-NTH42BY5.mjs} +2 -2
  17. package/dist/chunk-PIF5KJYI.mjs +103 -0
  18. package/dist/chunk-PIF5KJYI.mjs.map +1 -0
  19. package/dist/chunk-WSXTUD36.mjs +759 -0
  20. package/dist/chunk-WSXTUD36.mjs.map +1 -0
  21. package/dist/chunk-YIBUNEBN.mjs +34 -0
  22. package/dist/chunk-YIBUNEBN.mjs.map +1 -0
  23. package/dist/components/copilot-provider/copilotkit-props.d.ts +9 -1
  24. package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
  25. package/dist/components/copilot-provider/copilotkit.js +1052 -72
  26. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  27. package/dist/components/copilot-provider/copilotkit.mjs +6 -3
  28. package/dist/components/copilot-provider/index.js +1052 -72
  29. package/dist/components/copilot-provider/index.js.map +1 -1
  30. package/dist/components/copilot-provider/index.mjs +6 -3
  31. package/dist/components/dev-console/console-trigger.d.ts +8 -0
  32. package/dist/components/dev-console/console-trigger.js +1131 -0
  33. package/dist/components/dev-console/console-trigger.js.map +1 -0
  34. package/dist/components/dev-console/console-trigger.mjs +13 -0
  35. package/dist/components/dev-console/developer-console-modal.d.ts +10 -0
  36. package/dist/components/dev-console/developer-console-modal.js +977 -0
  37. package/dist/components/dev-console/developer-console-modal.js.map +1 -0
  38. package/dist/components/dev-console/developer-console-modal.mjs +12 -0
  39. package/dist/components/dev-console/developer-console-modal.mjs.map +1 -0
  40. package/dist/components/dev-console/icons.d.ts +9 -0
  41. package/dist/components/dev-console/icons.js +131 -0
  42. package/dist/components/dev-console/icons.js.map +1 -0
  43. package/dist/components/dev-console/icons.mjs +16 -0
  44. package/dist/components/dev-console/icons.mjs.map +1 -0
  45. package/dist/components/error-boundary/error-boundary.js +6 -2
  46. package/dist/components/error-boundary/error-boundary.js.map +1 -1
  47. package/dist/components/error-boundary/error-boundary.mjs +2 -2
  48. package/dist/components/index.js +1052 -72
  49. package/dist/components/index.js.map +1 -1
  50. package/dist/components/index.mjs +6 -3
  51. package/dist/components/usage-banner.d.ts +2 -1
  52. package/dist/components/usage-banner.js +6 -2
  53. package/dist/components/usage-banner.js.map +1 -1
  54. package/dist/components/usage-banner.mjs +1 -1
  55. package/dist/hooks/index.d.ts +5 -5
  56. package/dist/hooks/index.js +58 -26
  57. package/dist/hooks/index.js.map +1 -1
  58. package/dist/hooks/index.mjs +13 -10
  59. package/dist/hooks/use-coagent.d.ts +1 -1
  60. package/dist/hooks/use-coagent.js +18 -6
  61. package/dist/hooks/use-coagent.js.map +1 -1
  62. package/dist/hooks/use-coagent.mjs +8 -5
  63. package/dist/hooks/use-copilot-chat-headless_c.d.ts +33 -0
  64. package/dist/hooks/{use-copilot-chat-light.js → use-copilot-chat-headless_c.js} +88 -19
  65. package/dist/hooks/use-copilot-chat-headless_c.js.map +1 -0
  66. package/dist/hooks/{use-copilot-chat-light.mjs → use-copilot-chat-headless_c.mjs} +14 -8
  67. package/dist/hooks/use-copilot-chat-headless_c.mjs.map +1 -0
  68. package/dist/hooks/use-copilot-chat.d.ts +85 -4
  69. package/dist/hooks/use-copilot-chat.js +38 -61
  70. package/dist/hooks/use-copilot-chat.js.map +1 -1
  71. package/dist/hooks/use-copilot-chat.mjs +8 -8
  72. package/dist/hooks/use-copilot-chat_internal.d.ts +98 -12
  73. package/dist/hooks/use-copilot-chat_internal.js +13 -1
  74. package/dist/hooks/use-copilot-chat_internal.js.map +1 -1
  75. package/dist/hooks/use-copilot-chat_internal.mjs +7 -4
  76. package/dist/hooks/use-langgraph-interrupt.js +13 -1
  77. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  78. package/dist/hooks/use-langgraph-interrupt.mjs +8 -5
  79. package/dist/index.d.ts +3 -3
  80. package/dist/index.js +1203 -200
  81. package/dist/index.js.map +1 -1
  82. package/dist/index.mjs +14 -11
  83. package/dist/lib/copilot-task.js.map +1 -1
  84. package/dist/lib/copilot-task.mjs +7 -4
  85. package/dist/lib/index.js.map +1 -1
  86. package/dist/lib/index.mjs +7 -4
  87. package/dist/utils/extract.js.map +1 -1
  88. package/dist/utils/extract.mjs +6 -3
  89. package/dist/utils/index.js.map +1 -1
  90. package/dist/utils/index.mjs +6 -3
  91. package/dist/utils/suggestions.js.map +1 -1
  92. package/dist/utils/suggestions.mjs +6 -3
  93. package/package.json +3 -3
  94. package/src/components/copilot-provider/copilotkit-props.tsx +10 -1
  95. package/src/components/copilot-provider/copilotkit.tsx +25 -16
  96. package/src/components/dev-console/console-trigger.tsx +190 -0
  97. package/src/components/dev-console/developer-console-modal.tsx +866 -0
  98. package/src/components/dev-console/icons.tsx +101 -0
  99. package/src/components/usage-banner.tsx +8 -3
  100. package/src/hooks/index.ts +6 -7
  101. package/src/hooks/use-coagent.ts +6 -11
  102. package/src/hooks/use-copilot-chat-headless_c.ts +257 -0
  103. package/src/hooks/use-copilot-chat.ts +103 -154
  104. package/src/hooks/use-copilot-chat_internal.ts +122 -15
  105. package/dist/chunk-AWFAFFO5.mjs.map +0 -1
  106. package/dist/chunk-GRCHDHC4.mjs.map +0 -1
  107. package/dist/chunk-MWHILKQH.mjs +0 -18
  108. package/dist/chunk-MWHILKQH.mjs.map +0 -1
  109. package/dist/chunk-PHIMGB3K.mjs.map +0 -1
  110. package/dist/chunk-TTI4Z6GK.mjs.map +0 -1
  111. package/dist/chunk-VSH4JSN3.mjs.map +0 -1
  112. package/dist/hooks/use-copilot-chat-light.d.ts +0 -211
  113. package/dist/hooks/use-copilot-chat-light.js.map +0 -1
  114. package/src/hooks/use-copilot-chat-light.ts +0 -219
  115. /package/dist/{chunk-VH45SC6Z.mjs.map → chunk-2GRWTU7W.mjs.map} +0 -0
  116. /package/dist/{chunk-ZTZJIDRJ.mjs.map → chunk-N4VN2B5S.mjs.map} +0 -0
  117. /package/dist/{chunk-FTP6FDYS.mjs.map → chunk-NTH42BY5.mjs.map} +0 -0
  118. /package/dist/{hooks/use-copilot-chat-light.mjs.map → components/dev-console/console-trigger.mjs.map} +0 -0
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  CopilotKit,
3
3
  defaultCopilotContextCategories
4
- } from "../chunk-PHIMGB3K.mjs";
4
+ } from "../chunk-5P46WS5M.mjs";
5
+ import "../chunk-N4VN2B5S.mjs";
5
6
  import "../chunk-MUDXTKXE.mjs";
6
- import "../chunk-ZTZJIDRJ.mjs";
7
+ import "../chunk-3BASANUO.mjs";
8
+ import "../chunk-WSXTUD36.mjs";
9
+ import "../chunk-PIF5KJYI.mjs";
7
10
  import "../chunk-2IDV5OHF.mjs";
8
11
  import "../chunk-PMAFHQ7P.mjs";
9
12
  import "../chunk-5FHSUKQL.mjs";
@@ -13,7 +16,7 @@ import "../chunk-ICIK2BSB.mjs";
13
16
  import "../chunk-N4WEHORG.mjs";
14
17
  import "../chunk-O7ARI5CV.mjs";
15
18
  import "../chunk-EFL5OBKN.mjs";
16
- import "../chunk-AWFAFFO5.mjs";
19
+ import "../chunk-6ZLPNY7X.mjs";
17
20
  import "../chunk-TEMLWRRT.mjs";
18
21
  import "../chunk-ZLQVRPDS.mjs";
19
22
  import "../chunk-SKC7AJIV.mjs";
@@ -1,9 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { CopilotKitError, Severity } from '@copilotkit/shared';
3
+ import React from 'react';
3
4
 
4
5
  interface UsageBannerProps {
5
6
  severity?: Severity;
6
- message?: string;
7
+ message?: string | React.ReactNode;
7
8
  onClose?: () => void;
8
9
  actions?: {
9
10
  primary?: {
@@ -205,8 +205,12 @@ var getErrorActions = (error) => {
205
205
  case import_shared.CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR:
206
206
  return {
207
207
  primary: {
208
- label: "Get Free API Key",
209
- onClick: () => window.open("https://cloud.copilotkit.ai", "_blank", "noopener,noreferrer")
208
+ label: "Show me how",
209
+ onClick: () => window.open(
210
+ "https://docs.copilotkit.ai/premium#how-do-i-get-access-to-premium-features",
211
+ "_blank",
212
+ "noopener,noreferrer"
213
+ )
210
214
  }
211
215
  };
212
216
  case import_shared.CopilotKitErrorCode.UPGRADE_REQUIRED_ERROR:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/usage-banner.tsx"],"sourcesContent":["import {\n Severity,\n CopilotKitError,\n ErrorVisibility,\n CopilotKitErrorCode,\n} from \"@copilotkit/shared\";\n\ninterface UsageBannerProps {\n severity?: Severity;\n message?: string;\n onClose?: () => void;\n actions?: {\n primary?: {\n label: string;\n onClick: () => void;\n };\n secondary?: {\n label: string;\n onClick: () => void;\n };\n };\n}\n\nexport function UsageBanner({\n severity = Severity.CRITICAL,\n message = \"\",\n onClose,\n actions,\n}: UsageBannerProps) {\n if (!message || !severity) {\n return null;\n }\n\n const themes = {\n [Severity.INFO]: {\n bg: \"#f8fafc\",\n border: \"#e2e8f0\",\n text: \"#475569\",\n accent: \"#3b82f6\",\n },\n [Severity.WARNING]: {\n bg: \"#fffbeb\",\n border: \"#fbbf24\",\n text: \"#92400e\",\n accent: \"#f59e0b\",\n },\n [Severity.CRITICAL]: {\n bg: \"#fef2f2\",\n border: \"#fecaca\",\n text: \"#dc2626\",\n accent: \"#ef4444\",\n },\n };\n\n const theme = themes[severity];\n\n return (\n <>\n <style>\n {`\n @keyframes slideUp {\n from { opacity: 0; transform: translateX(-50%) translateY(8px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n \n .usage-banner {\n position: fixed;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n width: min(600px, calc(100vw - 32px));\n z-index: 10000;\n animation: slideUp 0.2s cubic-bezier(0.16, 1, 0.3, 1);\n }\n \n .banner-content {\n background: linear-gradient(135deg, ${theme.bg} 0%, ${theme.bg}f5 100%);\n border: 1px solid ${theme.border};\n border-radius: 12px;\n padding: 18px 20px;\n box-shadow: \n 0 4px 24px rgba(0, 0, 0, 0.08),\n 0 2px 8px rgba(0, 0, 0, 0.04),\n inset 0 1px 0 rgba(255, 255, 255, 0.7);\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;\n backdrop-filter: blur(12px);\n position: relative;\n overflow: hidden;\n }\n \n .banner-content::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, ${theme.accent}40, transparent);\n }\n \n .banner-message {\n color: ${theme.text};\n font-size: 14px;\n line-height: 1.5;\n font-weight: 500;\n flex: 1;\n letter-spacing: -0.01em;\n }\n \n .close-btn {\n background: rgba(0, 0, 0, 0.05);\n border: none;\n color: ${theme.text};\n cursor: pointer;\n padding: 0;\n border-radius: 6px;\n opacity: 0.6;\n transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);\n font-size: 14px;\n line-height: 1;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .close-btn:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.08);\n transform: scale(1.05);\n }\n \n .btn-primary {\n background: linear-gradient(135deg, ${theme.accent} 0%, ${theme.accent}e6 100%);\n color: white;\n border: none;\n border-radius: 8px;\n padding: 10px 18px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);\n font-family: inherit;\n flex-shrink: 0;\n box-shadow: \n 0 2px 8px ${theme.accent}30,\n inset 0 1px 0 rgba(255, 255, 255, 0.2);\n letter-spacing: -0.01em;\n }\n \n .btn-primary:hover {\n transform: translateY(-1px) scale(1.02);\n box-shadow: \n 0 4px 12px ${theme.accent}40,\n inset 0 1px 0 rgba(255, 255, 255, 0.25);\n }\n \n .btn-primary:active {\n transform: translateY(0) scale(0.98);\n transition: all 0.08s cubic-bezier(0.16, 1, 0.3, 1);\n }\n \n @media (max-width: 640px) {\n .usage-banner {\n width: calc(100vw - 24px);\n }\n \n .banner-content {\n padding: 16px;\n gap: 12px;\n }\n \n .banner-message {\n font-size: 13px;\n line-height: 1.45;\n }\n \n .btn-primary {\n padding: 8px 14px;\n font-size: 12px;\n }\n \n .close-btn {\n width: 22px;\n height: 22px;\n font-size: 12px;\n }\n }\n `}\n </style>\n\n <div className=\"usage-banner\">\n <div className=\"banner-content\">\n <div className=\"banner-message\">{message}</div>\n {actions?.primary && (\n <button className=\"btn-primary\" onClick={actions.primary.onClick}>\n {actions.primary.label}\n </button>\n )}\n {onClose && (\n <button className=\"close-btn\" onClick={onClose} title=\"Close\">\n ×\n </button>\n )}\n </div>\n </div>\n </>\n );\n}\n\n// Get action button based on error type\nexport const getErrorActions = (error: CopilotKitError) => {\n switch (error.code) {\n case CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR:\n return {\n primary: {\n label: \"Get Free API Key\",\n onClick: () =>\n window.open(\"https://cloud.copilotkit.ai\", \"_blank\", \"noopener,noreferrer\"),\n },\n };\n case CopilotKitErrorCode.UPGRADE_REQUIRED_ERROR:\n return {\n primary: {\n label: \"Upgrade\",\n onClick: () =>\n window.open(\"https://cloud.copilotkit.ai\", \"_blank\", \"noopener,noreferrer\"),\n },\n };\n default:\n return undefined;\n }\n};\n\nexport function renderCopilotKitUsage(error: CopilotKitError, onClose?: () => void) {\n // Route based on error visibility level\n if (error.visibility !== ErrorVisibility.BANNER) {\n return null;\n }\n\n return (\n <UsageBanner\n severity={error.severity || Severity.CRITICAL}\n message={error.message}\n onClose={onClose}\n actions={getErrorActions(error)}\n />\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/components/usage-banner.tsx"],"sourcesContent":["import {\n Severity,\n CopilotKitError,\n ErrorVisibility,\n CopilotKitErrorCode,\n} from \"@copilotkit/shared\";\nimport React from \"react\";\n\ninterface UsageBannerProps {\n severity?: Severity;\n message?: string | React.ReactNode;\n onClose?: () => void;\n actions?: {\n primary?: {\n label: string;\n onClick: () => void;\n };\n secondary?: {\n label: string;\n onClick: () => void;\n };\n };\n}\n\nexport function UsageBanner({\n severity = Severity.CRITICAL,\n message = \"\",\n onClose,\n actions,\n}: UsageBannerProps) {\n if (!message || !severity) {\n return null;\n }\n\n const themes = {\n [Severity.INFO]: {\n bg: \"#f8fafc\",\n border: \"#e2e8f0\",\n text: \"#475569\",\n accent: \"#3b82f6\",\n },\n [Severity.WARNING]: {\n bg: \"#fffbeb\",\n border: \"#fbbf24\",\n text: \"#92400e\",\n accent: \"#f59e0b\",\n },\n [Severity.CRITICAL]: {\n bg: \"#fef2f2\",\n border: \"#fecaca\",\n text: \"#dc2626\",\n accent: \"#ef4444\",\n },\n };\n\n const theme = themes[severity];\n\n return (\n <>\n <style>\n {`\n @keyframes slideUp {\n from { opacity: 0; transform: translateX(-50%) translateY(8px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n \n .usage-banner {\n position: fixed;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n width: min(600px, calc(100vw - 32px));\n z-index: 10000;\n animation: slideUp 0.2s cubic-bezier(0.16, 1, 0.3, 1);\n }\n \n .banner-content {\n background: linear-gradient(135deg, ${theme.bg} 0%, ${theme.bg}f5 100%);\n border: 1px solid ${theme.border};\n border-radius: 12px;\n padding: 18px 20px;\n box-shadow: \n 0 4px 24px rgba(0, 0, 0, 0.08),\n 0 2px 8px rgba(0, 0, 0, 0.04),\n inset 0 1px 0 rgba(255, 255, 255, 0.7);\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;\n backdrop-filter: blur(12px);\n position: relative;\n overflow: hidden;\n }\n \n .banner-content::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, ${theme.accent}40, transparent);\n }\n \n .banner-message {\n color: ${theme.text};\n font-size: 14px;\n line-height: 1.5;\n font-weight: 500;\n flex: 1;\n letter-spacing: -0.01em;\n }\n \n .close-btn {\n background: rgba(0, 0, 0, 0.05);\n border: none;\n color: ${theme.text};\n cursor: pointer;\n padding: 0;\n border-radius: 6px;\n opacity: 0.6;\n transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);\n font-size: 14px;\n line-height: 1;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n .close-btn:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.08);\n transform: scale(1.05);\n }\n \n .btn-primary {\n background: linear-gradient(135deg, ${theme.accent} 0%, ${theme.accent}e6 100%);\n color: white;\n border: none;\n border-radius: 8px;\n padding: 10px 18px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);\n font-family: inherit;\n flex-shrink: 0;\n box-shadow: \n 0 2px 8px ${theme.accent}30,\n inset 0 1px 0 rgba(255, 255, 255, 0.2);\n letter-spacing: -0.01em;\n }\n \n .btn-primary:hover {\n transform: translateY(-1px) scale(1.02);\n box-shadow: \n 0 4px 12px ${theme.accent}40,\n inset 0 1px 0 rgba(255, 255, 255, 0.25);\n }\n \n .btn-primary:active {\n transform: translateY(0) scale(0.98);\n transition: all 0.08s cubic-bezier(0.16, 1, 0.3, 1);\n }\n \n @media (max-width: 640px) {\n .usage-banner {\n width: calc(100vw - 24px);\n }\n \n .banner-content {\n padding: 16px;\n gap: 12px;\n }\n \n .banner-message {\n font-size: 13px;\n line-height: 1.45;\n }\n \n .btn-primary {\n padding: 8px 14px;\n font-size: 12px;\n }\n \n .close-btn {\n width: 22px;\n height: 22px;\n font-size: 12px;\n }\n }\n `}\n </style>\n\n <div className=\"usage-banner\">\n <div className=\"banner-content\">\n <div className=\"banner-message\">{message}</div>\n {actions?.primary && (\n <button className=\"btn-primary\" onClick={actions.primary.onClick}>\n {actions.primary.label}\n </button>\n )}\n {onClose && (\n <button className=\"close-btn\" onClick={onClose} title=\"Close\">\n ×\n </button>\n )}\n </div>\n </div>\n </>\n );\n}\n\n// Get action button based on error type\nexport const getErrorActions = (error: CopilotKitError) => {\n switch (error.code) {\n case CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR:\n return {\n primary: {\n label: \"Show me how\",\n onClick: () =>\n window.open(\n \"https://docs.copilotkit.ai/premium#how-do-i-get-access-to-premium-features\",\n \"_blank\",\n \"noopener,noreferrer\",\n ),\n },\n };\n case CopilotKitErrorCode.UPGRADE_REQUIRED_ERROR:\n return {\n primary: {\n label: \"Upgrade\",\n onClick: () =>\n window.open(\"https://cloud.copilotkit.ai\", \"_blank\", \"noopener,noreferrer\"),\n },\n };\n default:\n return undefined;\n }\n};\n\nexport function renderCopilotKitUsage(error: CopilotKitError, onClose?: () => void) {\n // Route based on error visibility level\n if (error.visibility !== ErrorVisibility.BANNER) {\n return null;\n }\n\n return (\n <UsageBanner\n severity={error.severity || Severity.CRITICAL}\n message={error.message}\n onClose={onClose}\n actions={getErrorActions(error)}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKO;AAqDH;AAlCG,SAAS,YAAY;AAAA,EAC1B,WAAW,uBAAS;AAAA,EACpB,UAAU;AAAA,EACV;AAAA,EACA;AACF,GAAqB;AACnB,MAAI,CAAC,WAAW,CAAC,UAAU;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,SAAS;AAAA,IACb,CAAC,uBAAS,IAAI,GAAG;AAAA,MACf,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AAAA,IACA,CAAC,uBAAS,OAAO,GAAG;AAAA,MAClB,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AAAA,IACA,CAAC,uBAAS,QAAQ,GAAG;AAAA,MACnB,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,QAAQ;AAE7B,SACE,4EACE;AAAA,gDAAC,WACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kDAiByC,MAAM,UAAU,MAAM;AAAA,gCACxC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8DAuBwB,MAAM;AAAA;AAAA;AAAA;AAAA,qBAI/C,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAWN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kDAuBuB,MAAM,cAAc,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAYlD,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAQL,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAoC3B;AAAA,IAEA,4CAAC,SAAI,WAAU,gBACb,uDAAC,SAAI,WAAU,kBACb;AAAA,kDAAC,SAAI,WAAU,kBAAkB,mBAAQ;AAAA,OACxC,mCAAS,YACR,4CAAC,YAAO,WAAU,eAAc,SAAS,QAAQ,QAAQ,SACtD,kBAAQ,QAAQ,OACnB;AAAA,MAED,WACC,4CAAC,YAAO,WAAU,aAAY,SAAS,SAAS,OAAM,SAAQ,kBAE9D;AAAA,OAEJ,GACF;AAAA,KACF;AAEJ;AAGO,IAAM,kBAAkB,CAAC,UAA2B;AACzD,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK,kCAAoB;AACvB,aAAO;AAAA,QACL,SAAS;AAAA,UACP,OAAO;AAAA,UACP,SAAS,MACP,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACJ;AAAA,MACF;AAAA,IACF,KAAK,kCAAoB;AACvB,aAAO;AAAA,QACL,SAAS;AAAA,UACP,OAAO;AAAA,UACP,SAAS,MACP,OAAO,KAAK,+BAA+B,UAAU,qBAAqB;AAAA,QAC9E;AAAA,MACF;AAAA,IACF;AACE,aAAO;AAAA,EACX;AACF;AAEO,SAAS,sBAAsB,OAAwB,SAAsB;AAElF,MAAI,MAAM,eAAe,8BAAgB,QAAQ;AAC/C,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,MAAM,YAAY,uBAAS;AAAA,MACrC,SAAS,MAAM;AAAA,MACf;AAAA,MACA,SAAS,gBAAgB,KAAK;AAAA;AAAA,EAChC;AAEJ;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  UsageBanner,
3
3
  getErrorActions,
4
4
  renderCopilotKitUsage
5
- } from "../chunk-AWFAFFO5.mjs";
5
+ } from "../chunk-6ZLPNY7X.mjs";
6
6
  import "../chunk-SKC7AJIV.mjs";
7
7
  export {
8
8
  UsageBanner,
@@ -1,6 +1,6 @@
1
- export { useCopilotChat } from './use-copilot-chat.js';
2
- export { UseCopilotChatLightOptions, UseCopilotChatLightReturn, useCopilotChatLight } from './use-copilot-chat-light.js';
3
- export { UseCopilotChatOptions, UseCopilotChatReturn, useCopilotChat as useCopilotChatInternal } from './use-copilot-chat_internal.js';
1
+ export { UseCopilotChatReturn, useCopilotChat } from './use-copilot-chat.js';
2
+ export { UseCopilotChatOptions, UseCopilotChatOptions as UseCopilotChatOptions_c, UseCopilotChatReturn as UseCopilotChatReturn_c, useCopilotChat as useCopilotChatInternal } from './use-copilot-chat_internal.js';
3
+ export { useCopilotChatHeadless_c } from './use-copilot-chat-headless_c.js';
4
4
  export { useCopilotAction } from './use-copilot-action.js';
5
5
  export { useCoAgentStateRender } from './use-coagent-state-render.js';
6
6
  export { useMakeCopilotDocumentReadable } from './use-make-copilot-document-readable.js';
@@ -13,14 +13,14 @@ export { useLangGraphInterrupt } from './use-langgraph-interrupt.js';
13
13
  export { useLangGraphInterruptRender } from './use-langgraph-interrupt-render.js';
14
14
  export { useCopilotAdditionalInstructions } from './use-copilot-additional-instructions.js';
15
15
  export { Tree, TreeNode } from './use-tree.js';
16
+ import '../types/system-message.js';
17
+ import '@copilotkit/runtime-client-gql';
16
18
  import '@copilotkit/shared';
17
19
  import '../index-08c43df1.js';
18
20
  import '../copilot-context-256f9020.js';
19
21
  import '../types/frontend-action.js';
20
- import '@copilotkit/runtime-client-gql';
21
22
  import 'react';
22
23
  import '../types/document-pointer.js';
23
24
  import '../types/chat-suggestion-configuration.js';
24
25
  import '../types/coagent-action.js';
25
26
  import '../types/coagent-state.js';
26
- import '../types/system-message.js';
@@ -88,8 +88,8 @@ __export(hooks_exports, {
88
88
  useCopilotAdditionalInstructions: () => useCopilotAdditionalInstructions,
89
89
  useCopilotAuthenticatedAction_c: () => useCopilotAuthenticatedAction_c,
90
90
  useCopilotChat: () => useCopilotChat2,
91
+ useCopilotChatHeadless_c: () => useCopilotChatHeadless_c,
91
92
  useCopilotChatInternal: () => useCopilotChat,
92
- useCopilotChatLight: () => useCopilotChatLight,
93
93
  useCopilotReadable: () => useCopilotReadable,
94
94
  useCopilotRuntimeClient: () => useCopilotRuntimeClient,
95
95
  useLangGraphInterrupt: () => useLangGraphInterrupt,
@@ -98,8 +98,8 @@ __export(hooks_exports, {
98
98
  });
99
99
  module.exports = __toCommonJS(hooks_exports);
100
100
 
101
- // src/hooks/use-copilot-chat.ts
102
- var import_react11 = require("react");
101
+ // src/hooks/use-copilot-chat_internal.ts
102
+ var import_react10 = require("react");
103
103
 
104
104
  // src/context/copilot-context.tsx
105
105
  var import_react = __toESM(require("react"));
@@ -192,9 +192,6 @@ function returnAndThrowInDebug(_value) {
192
192
  throw new Error("Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!");
193
193
  }
194
194
 
195
- // src/hooks/use-copilot-chat_internal.ts
196
- var import_react10 = require("react");
197
-
198
195
  // src/context/copilot-messages-context.tsx
199
196
  var import_react2 = __toESM(require("react"));
200
197
  var emptyCopilotContext2 = {
@@ -1667,6 +1664,13 @@ function useCopilotChat(options = {}) {
1667
1664
  }));
1668
1665
  const latestAppend = useUpdatedRef(append);
1669
1666
  const latestAppendFunc = useAsyncCallback(
1667
+ (message, options2) => __async(this, null, function* () {
1668
+ abortSuggestions(options2 == null ? void 0 : options2.clearSuggestions);
1669
+ return yield latestAppend.current(message, options2);
1670
+ }),
1671
+ [latestAppend]
1672
+ );
1673
+ const latestSendMessageFunc = useAsyncCallback(
1670
1674
  (message, options2) => __async(this, null, function* () {
1671
1675
  abortSuggestions(options2 == null ? void 0 : options2.clearSuggestions);
1672
1676
  return yield latestAppend.current((0, import_runtime_client_gql8.aguiToGQL)([message])[0], options2);
@@ -1694,6 +1698,9 @@ function useCopilotChat(options = {}) {
1694
1698
  const latestSetMessages = useUpdatedRef(setMessages);
1695
1699
  const latestSetMessagesFunc = (0, import_react10.useCallback)(
1696
1700
  (messages2) => {
1701
+ if (messages2.every((message) => message instanceof import_runtime_client_gql8.Message)) {
1702
+ return latestSetMessages.current(messages2);
1703
+ }
1697
1704
  return latestSetMessages.current((0, import_runtime_client_gql8.aguiToGQL)(messages2));
1698
1705
  },
1699
1706
  [latestSetMessages]
@@ -1730,7 +1737,9 @@ function useCopilotChat(options = {}) {
1730
1737
  }, [latestReset]);
1731
1738
  const interrupt = useLangGraphInterruptRender();
1732
1739
  return {
1733
- visibleMessages: (0, import_runtime_client_gql8.gqlToAGUI)(messages, actions, coAgentStateRenders),
1740
+ visibleMessages: messages,
1741
+ messages: (0, import_runtime_client_gql8.gqlToAGUI)(messages, actions, coAgentStateRenders),
1742
+ sendMessage: latestSendMessageFunc,
1734
1743
  appendMessage: latestAppendFunc,
1735
1744
  setMessages: latestSetMessagesFunc,
1736
1745
  reloadMessages: latestReloadFunc,
@@ -1784,9 +1793,39 @@ ${additionalInstructions}` : "");
1784
1793
  }
1785
1794
 
1786
1795
  // src/hooks/use-copilot-chat.ts
1796
+ function useCopilotChat2(options = {}) {
1797
+ const {
1798
+ visibleMessages,
1799
+ appendMessage,
1800
+ reloadMessages,
1801
+ stopGeneration,
1802
+ reset,
1803
+ isLoading,
1804
+ runChatCompletion,
1805
+ mcpServers,
1806
+ setMcpServers
1807
+ } = useCopilotChat(options);
1808
+ return {
1809
+ visibleMessages,
1810
+ appendMessage,
1811
+ reloadMessages,
1812
+ stopGeneration,
1813
+ reset,
1814
+ isLoading,
1815
+ runChatCompletion,
1816
+ mcpServers,
1817
+ setMcpServers
1818
+ };
1819
+ }
1820
+
1821
+ // src/hooks/use-copilot-chat-headless_c.ts
1822
+ var import_react11 = require("react");
1787
1823
  var import_shared9 = require("@copilotkit/shared");
1788
1824
  var createNonFunctionalReturn = () => ({
1789
1825
  visibleMessages: [],
1826
+ messages: [],
1827
+ sendMessage: () => __async(void 0, null, function* () {
1828
+ }),
1790
1829
  appendMessage: () => __async(void 0, null, function* () {
1791
1830
  }),
1792
1831
  setMessages: () => {
@@ -1816,7 +1855,7 @@ var createNonFunctionalReturn = () => ({
1816
1855
  isLoadingSuggestions: false,
1817
1856
  interrupt: null
1818
1857
  });
1819
- function useCopilotChat2(options = {}) {
1858
+ function useCopilotChatHeadless_c(options = {}) {
1820
1859
  const { copilotApiConfig, setBannerError } = useCopilotContext();
1821
1860
  const hasPublicApiKey = Boolean(copilotApiConfig.publicApiKey);
1822
1861
  const internalResult = useCopilotChat(options);
@@ -1824,9 +1863,12 @@ function useCopilotChat2(options = {}) {
1824
1863
  if (!hasPublicApiKey) {
1825
1864
  setBannerError(
1826
1865
  new import_shared9.CopilotKitError({
1827
- message: "As of v1.10.0, useCopilotChat requires a publicApiKey to function.",
1866
+ message: (
1867
+ // add link to documentation here
1868
+ "You're using useCopilotChatHeadless_c, a premium-only feature, which offers extensive headless chat capabilities. To continue, you'll need to provide a free public license key."
1869
+ ),
1828
1870
  code: import_shared9.CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR,
1829
- severity: import_shared9.Severity.CRITICAL,
1871
+ severity: import_shared9.Severity.WARNING,
1830
1872
  visibility: import_shared9.ErrorVisibility.BANNER
1831
1873
  })
1832
1874
  );
@@ -1841,16 +1883,6 @@ function useCopilotChat2(options = {}) {
1841
1883
  return createNonFunctionalReturn();
1842
1884
  }
1843
1885
 
1844
- // src/hooks/use-copilot-chat-light.ts
1845
- function useCopilotChatLight(options = {}) {
1846
- const { appendMessage, setSuggestions, generateSuggestions } = useCopilotChat(options);
1847
- return {
1848
- appendMessage,
1849
- setSuggestions,
1850
- generateSuggestions
1851
- };
1852
- }
1853
-
1854
1886
  // src/hooks/use-copilot-action.ts
1855
1887
  var import_shared10 = require("@copilotkit/shared");
1856
1888
  var import_react12 = require("react");
@@ -2119,7 +2151,7 @@ function useCoAgent(options) {
2119
2151
  }, [availableAgents]);
2120
2152
  const { getMessagesFromTap } = useMessagesTap();
2121
2153
  const { coagentStates, coagentStatesRef, setCoagentStatesWithRef, threadId, copilotApiConfig } = context;
2122
- const { appendMessage, runChatCompletion } = useCopilotChat();
2154
+ const { sendMessage, runChatCompletion } = useCopilotChat();
2123
2155
  const headers = __spreadValues({}, copilotApiConfig.headers || {});
2124
2156
  const runtimeClient = useCopilotRuntimeClient({
2125
2157
  url: copilotApiConfig.chatApiEndpoint,
@@ -2203,9 +2235,9 @@ function useCoAgent(options) {
2203
2235
  }, [JSON.stringify(options.config), JSON.stringify(options.configurable)]);
2204
2236
  const runAgentCallback = useAsyncCallback(
2205
2237
  (hint) => __async(this, null, function* () {
2206
- yield runAgent(name, context, getMessagesFromTap(), appendMessage, runChatCompletion, hint);
2238
+ yield runAgent(name, context, getMessagesFromTap(), sendMessage, runChatCompletion, hint);
2207
2239
  }),
2208
- [name, context, appendMessage, runChatCompletion]
2240
+ [name, context, sendMessage, runChatCompletion]
2209
2241
  );
2210
2242
  return (0, import_react16.useMemo)(() => {
2211
2243
  const coagentState = getCoagentState({ coagentStates, name, options });
@@ -2247,7 +2279,7 @@ function stopAgent(name, context) {
2247
2279
  console.warn(`No agent session found for ${name}`);
2248
2280
  }
2249
2281
  }
2250
- function runAgent(name, context, messages, appendMessage, runChatCompletion, hint) {
2282
+ function runAgent(name, context, messages, sendMessage, runChatCompletion, hint) {
2251
2283
  return __async(this, null, function* () {
2252
2284
  var _a, _b;
2253
2285
  const { agentSession, setAgentSession } = context;
@@ -2267,7 +2299,7 @@ function runAgent(name, context, messages, appendMessage, runChatCompletion, hin
2267
2299
  if (hint) {
2268
2300
  const hintMessage = hint({ previousState, currentState: state });
2269
2301
  if (hintMessage) {
2270
- yield appendMessage(hintMessage);
2302
+ yield sendMessage(hintMessage);
2271
2303
  } else {
2272
2304
  yield runChatCompletion();
2273
2305
  }
@@ -2420,8 +2452,8 @@ function useCopilotAdditionalInstructions({ instructions, available = "enabled"
2420
2452
  useCopilotAdditionalInstructions,
2421
2453
  useCopilotAuthenticatedAction_c,
2422
2454
  useCopilotChat,
2455
+ useCopilotChatHeadless_c,
2423
2456
  useCopilotChatInternal,
2424
- useCopilotChatLight,
2425
2457
  useCopilotReadable,
2426
2458
  useCopilotRuntimeClient,
2427
2459
  useLangGraphInterrupt,