@copilotkitnext/react 1.51.5-next.4 → 1.52.0-next.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/components/WildcardToolCallRender.cjs +13 -13
  2. package/dist/components/WildcardToolCallRender.cjs.map +1 -1
  3. package/dist/components/WildcardToolCallRender.mjs +13 -13
  4. package/dist/components/WildcardToolCallRender.mjs.map +1 -1
  5. package/dist/components/chat/CopilotChat.cjs.map +1 -1
  6. package/dist/components/chat/CopilotChat.mjs.map +1 -1
  7. package/dist/components/chat/CopilotChatAssistantMessage.cjs +36 -28
  8. package/dist/components/chat/CopilotChatAssistantMessage.cjs.map +1 -1
  9. package/dist/components/chat/CopilotChatAssistantMessage.mjs +37 -29
  10. package/dist/components/chat/CopilotChatAssistantMessage.mjs.map +1 -1
  11. package/dist/components/chat/CopilotChatAudioRecorder.cjs +2 -2
  12. package/dist/components/chat/CopilotChatAudioRecorder.cjs.map +1 -1
  13. package/dist/components/chat/CopilotChatAudioRecorder.mjs +2 -2
  14. package/dist/components/chat/CopilotChatAudioRecorder.mjs.map +1 -1
  15. package/dist/components/chat/CopilotChatInput.cjs +59 -51
  16. package/dist/components/chat/CopilotChatInput.cjs.map +1 -1
  17. package/dist/components/chat/CopilotChatInput.d.cts.map +1 -1
  18. package/dist/components/chat/CopilotChatInput.d.mts.map +1 -1
  19. package/dist/components/chat/CopilotChatInput.mjs +59 -51
  20. package/dist/components/chat/CopilotChatInput.mjs.map +1 -1
  21. package/dist/components/chat/CopilotChatMessageView.cjs +12 -7
  22. package/dist/components/chat/CopilotChatMessageView.cjs.map +1 -1
  23. package/dist/components/chat/CopilotChatMessageView.d.cts.map +1 -1
  24. package/dist/components/chat/CopilotChatMessageView.d.mts.map +1 -1
  25. package/dist/components/chat/CopilotChatMessageView.mjs +12 -7
  26. package/dist/components/chat/CopilotChatMessageView.mjs.map +1 -1
  27. package/dist/components/chat/CopilotChatReasoningMessage.cjs +24 -20
  28. package/dist/components/chat/CopilotChatReasoningMessage.cjs.map +1 -1
  29. package/dist/components/chat/CopilotChatReasoningMessage.d.cts.map +1 -1
  30. package/dist/components/chat/CopilotChatReasoningMessage.d.mts.map +1 -1
  31. package/dist/components/chat/CopilotChatReasoningMessage.mjs +25 -21
  32. package/dist/components/chat/CopilotChatReasoningMessage.mjs.map +1 -1
  33. package/dist/components/chat/CopilotChatSuggestionPill.cjs +6 -5
  34. package/dist/components/chat/CopilotChatSuggestionPill.cjs.map +1 -1
  35. package/dist/components/chat/CopilotChatSuggestionPill.mjs +6 -5
  36. package/dist/components/chat/CopilotChatSuggestionPill.mjs.map +1 -1
  37. package/dist/components/chat/CopilotChatSuggestionView.cjs +24 -12
  38. package/dist/components/chat/CopilotChatSuggestionView.cjs.map +1 -1
  39. package/dist/components/chat/CopilotChatSuggestionView.d.cts.map +1 -1
  40. package/dist/components/chat/CopilotChatSuggestionView.d.mts.map +1 -1
  41. package/dist/components/chat/CopilotChatSuggestionView.mjs +25 -13
  42. package/dist/components/chat/CopilotChatSuggestionView.mjs.map +1 -1
  43. package/dist/components/chat/CopilotChatToggleButton.cjs +7 -6
  44. package/dist/components/chat/CopilotChatToggleButton.cjs.map +1 -1
  45. package/dist/components/chat/CopilotChatToggleButton.d.cts.map +1 -1
  46. package/dist/components/chat/CopilotChatToggleButton.d.mts.map +1 -1
  47. package/dist/components/chat/CopilotChatToggleButton.mjs +7 -6
  48. package/dist/components/chat/CopilotChatToggleButton.mjs.map +1 -1
  49. package/dist/components/chat/CopilotChatUserMessage.cjs +29 -24
  50. package/dist/components/chat/CopilotChatUserMessage.cjs.map +1 -1
  51. package/dist/components/chat/CopilotChatUserMessage.d.cts.map +1 -1
  52. package/dist/components/chat/CopilotChatUserMessage.d.mts.map +1 -1
  53. package/dist/components/chat/CopilotChatUserMessage.mjs +30 -25
  54. package/dist/components/chat/CopilotChatUserMessage.mjs.map +1 -1
  55. package/dist/components/chat/CopilotChatView.cjs +45 -35
  56. package/dist/components/chat/CopilotChatView.cjs.map +1 -1
  57. package/dist/components/chat/CopilotChatView.d.cts +1 -1
  58. package/dist/components/chat/CopilotChatView.d.cts.map +1 -1
  59. package/dist/components/chat/CopilotChatView.d.mts +1 -1
  60. package/dist/components/chat/CopilotChatView.d.mts.map +1 -1
  61. package/dist/components/chat/CopilotChatView.mjs +45 -35
  62. package/dist/components/chat/CopilotChatView.mjs.map +1 -1
  63. package/dist/components/chat/CopilotModalHeader.cjs +8 -8
  64. package/dist/components/chat/CopilotModalHeader.cjs.map +1 -1
  65. package/dist/components/chat/CopilotModalHeader.d.cts.map +1 -1
  66. package/dist/components/chat/CopilotModalHeader.d.mts.map +1 -1
  67. package/dist/components/chat/CopilotModalHeader.mjs +8 -8
  68. package/dist/components/chat/CopilotModalHeader.mjs.map +1 -1
  69. package/dist/components/chat/CopilotPopupView.cjs +20 -15
  70. package/dist/components/chat/CopilotPopupView.cjs.map +1 -1
  71. package/dist/components/chat/CopilotPopupView.d.cts.map +1 -1
  72. package/dist/components/chat/CopilotPopupView.d.mts.map +1 -1
  73. package/dist/components/chat/CopilotPopupView.mjs +20 -15
  74. package/dist/components/chat/CopilotPopupView.mjs.map +1 -1
  75. package/dist/components/chat/CopilotSidebarView.cjs +54 -43
  76. package/dist/components/chat/CopilotSidebarView.cjs.map +1 -1
  77. package/dist/components/chat/CopilotSidebarView.d.cts.map +1 -1
  78. package/dist/components/chat/CopilotSidebarView.d.mts.map +1 -1
  79. package/dist/components/chat/CopilotSidebarView.mjs +55 -44
  80. package/dist/components/chat/CopilotSidebarView.mjs.map +1 -1
  81. package/dist/components/ui/button.cjs +42 -42
  82. package/dist/components/ui/button.cjs.map +1 -1
  83. package/dist/components/ui/button.mjs +42 -42
  84. package/dist/components/ui/button.mjs.map +1 -1
  85. package/dist/components/ui/dropdown-menu.cjs +7 -6
  86. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  87. package/dist/components/ui/dropdown-menu.mjs +7 -6
  88. package/dist/components/ui/dropdown-menu.mjs.map +1 -1
  89. package/dist/components/ui/tooltip.cjs +3 -2
  90. package/dist/components/ui/tooltip.cjs.map +1 -1
  91. package/dist/components/ui/tooltip.mjs +3 -2
  92. package/dist/components/ui/tooltip.mjs.map +1 -1
  93. package/dist/hooks/use-component.cjs +18 -5
  94. package/dist/hooks/use-component.cjs.map +1 -1
  95. package/dist/hooks/use-component.d.cts +21 -7
  96. package/dist/hooks/use-component.d.cts.map +1 -1
  97. package/dist/hooks/use-component.d.mts +21 -7
  98. package/dist/hooks/use-component.d.mts.map +1 -1
  99. package/dist/hooks/use-component.mjs +18 -5
  100. package/dist/hooks/use-component.mjs.map +1 -1
  101. package/dist/hooks/use-default-render-tool.cjs +2 -2
  102. package/dist/hooks/use-default-render-tool.cjs.map +1 -1
  103. package/dist/hooks/use-default-render-tool.d.cts +3 -3
  104. package/dist/hooks/use-default-render-tool.d.cts.map +1 -1
  105. package/dist/hooks/use-default-render-tool.d.mts +3 -3
  106. package/dist/hooks/use-default-render-tool.d.mts.map +1 -1
  107. package/dist/hooks/use-default-render-tool.mjs +2 -2
  108. package/dist/hooks/use-default-render-tool.mjs.map +1 -1
  109. package/dist/hooks/use-render-tool.cjs +15 -9
  110. package/dist/hooks/use-render-tool.cjs.map +1 -1
  111. package/dist/hooks/use-render-tool.d.cts +9 -9
  112. package/dist/hooks/use-render-tool.d.cts.map +1 -1
  113. package/dist/hooks/use-render-tool.d.mts +9 -9
  114. package/dist/hooks/use-render-tool.d.mts.map +1 -1
  115. package/dist/hooks/use-render-tool.mjs +15 -9
  116. package/dist/hooks/use-render-tool.mjs.map +1 -1
  117. package/dist/index.umd.js +429 -339
  118. package/dist/index.umd.js.map +1 -1
  119. package/dist/lib/utils.cjs +2 -1
  120. package/dist/lib/utils.cjs.map +1 -1
  121. package/dist/lib/utils.mjs +3 -2
  122. package/dist/lib/utils.mjs.map +1 -1
  123. package/dist/styles.css +1 -1
  124. package/eslint-rules/README.md +52 -0
  125. package/eslint-rules/require-cpk-prefix.mjs +375 -0
  126. package/eslint.config.mjs +17 -0
  127. package/package.json +8 -7
@@ -3,19 +3,19 @@ import { z } from "zod";
3
3
  //#region src/hooks/use-render-tool.d.ts
4
4
  interface RenderToolInProgressProps<S extends z.ZodTypeAny> {
5
5
  name: string;
6
- args: Partial<z.infer<S>>;
6
+ parameters: Partial<z.infer<S>>;
7
7
  status: "inProgress";
8
8
  result: undefined;
9
9
  }
10
10
  interface RenderToolExecutingProps<S extends z.ZodTypeAny> {
11
11
  name: string;
12
- args: z.infer<S>;
12
+ parameters: z.infer<S>;
13
13
  status: "executing";
14
14
  result: undefined;
15
15
  }
16
16
  interface RenderToolCompleteProps<S extends z.ZodTypeAny> {
17
17
  name: string;
18
- args: z.infer<S>;
18
+ parameters: z.infer<S>;
19
19
  status: "complete";
20
20
  result: string;
21
21
  }
@@ -52,10 +52,10 @@ declare function useRenderTool(config: {
52
52
  /**
53
53
  * Registers a name-scoped renderer for tool calls.
54
54
  *
55
- * The provided `args` Zod schema defines the typed shape of `props.args`
55
+ * The provided `parameters` Zod schema defines the typed shape of `props.parameters`
56
56
  * in `render` for `executing` and `complete` states.
57
57
  *
58
- * @typeParam S - Zod schema type describing tool call args.
58
+ * @typeParam S - Zod schema type describing tool call parameters.
59
59
  * @param config - Named renderer configuration.
60
60
  * @param deps - Optional dependencies to refresh registration.
61
61
  *
@@ -64,10 +64,10 @@ declare function useRenderTool(config: {
64
64
  * useRenderTool(
65
65
  * {
66
66
  * name: "searchDocs",
67
- * args: z.object({ query: z.string() }),
68
- * render: ({ status, args, result }) => {
67
+ * parameters: z.object({ query: z.string() }),
68
+ * render: ({ status, parameters, result }) => {
69
69
  * if (status === "inProgress") return <div>Preparing...</div>;
70
- * if (status === "executing") return <div>Searching {args.query}</div>;
70
+ * if (status === "executing") return <div>Searching {parameters.query}</div>;
71
71
  * return <div>{result}</div>;
72
72
  * },
73
73
  * },
@@ -77,7 +77,7 @@ declare function useRenderTool(config: {
77
77
  */
78
78
  declare function useRenderTool<S extends z.ZodTypeAny>(config: {
79
79
  name: string;
80
- args: S;
80
+ parameters: S;
81
81
  render: (props: RenderToolProps<S>) => React.ReactElement;
82
82
  agentId?: string;
83
83
  }, deps?: ReadonlyArray<unknown>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-render-tool.d.cts","names":[],"sources":["../../src/hooks/use-render-tool.tsx"],"mappings":";;;UAQiB,yBAAA,WAAoC,CAAA,CAAE,UAAA;EACrD,IAAA;EACA,IAAA,EAAM,OAAA,CAAQ,CAAA,CAAE,KAAA,CAAM,CAAA;EACtB,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,wBAAA,WAAmC,CAAA,CAAE,UAAA;EACpD,IAAA;EACA,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,CAAA;EACd,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,uBAAA,WAAkC,CAAA,CAAE,UAAA;EACnD,IAAA;EACA,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,CAAA;EACd,MAAA;EACA,MAAA;AAAA;AAAA,KAGU,eAAA,WAA0B,CAAA,CAAE,UAAA,IACpC,yBAAA,CAA0B,CAAA,IAC1B,wBAAA,CAAyB,CAAA,IACzB,uBAAA,CAAwB,CAAA;;;;;;AAjB5B;;;;;;;;;;;;;;;;;;;iBAkDgB,aAAA,CACd,MAAA;EACE,IAAA;EACA,MAAA,GAAS,KAAA,UAAe,KAAA,CAAM,YAAA;EAC9B,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA;;;;;;;;;;;;;;;;;AA1CT;;;;;;;;;;iBAuEgB,aAAA,WAAwB,CAAA,CAAE,UAAA,CAAA,CACxC,MAAA;EACE,IAAA;EACA,IAAA,EAAM,CAAA;EACN,MAAA,GAAS,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAO,KAAA,CAAM,YAAA;EAC7C,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA"}
1
+ {"version":3,"file":"use-render-tool.d.cts","names":[],"sources":["../../src/hooks/use-render-tool.tsx"],"mappings":";;;UAQiB,yBAAA,WAAoC,CAAA,CAAE,UAAA;EACrD,IAAA;EACA,UAAA,EAAY,OAAA,CAAQ,CAAA,CAAE,KAAA,CAAM,CAAA;EAC5B,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,wBAAA,WAAmC,CAAA,CAAE,UAAA;EACpD,IAAA;EACA,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA;EACpB,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,uBAAA,WAAkC,CAAA,CAAE,UAAA;EACnD,IAAA;EACA,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA;EACpB,MAAA;EACA,MAAA;AAAA;AAAA,KAGU,eAAA,WAA0B,CAAA,CAAE,UAAA,IACpC,yBAAA,CAA0B,CAAA,IAC1B,wBAAA,CAAyB,CAAA,IACzB,uBAAA,CAAwB,CAAA;;;;;;AAjB5B;;;;;;;;;;;;;;;;;;;iBAkDgB,aAAA,CACd,MAAA;EACE,IAAA;EACA,MAAA,GAAS,KAAA,UAAe,KAAA,CAAM,YAAA;EAC9B,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA;;;;;;;;;;;;;;;;;AA1CT;;;;;;;;;;iBAuEgB,aAAA,WAAwB,CAAA,CAAE,UAAA,CAAA,CACxC,MAAA;EACE,IAAA;EACA,UAAA,EAAY,CAAA;EACZ,MAAA,GAAS,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAO,KAAA,CAAM,YAAA;EAC7C,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA"}
@@ -3,19 +3,19 @@ import { z } from "zod";
3
3
  //#region src/hooks/use-render-tool.d.ts
4
4
  interface RenderToolInProgressProps<S extends z.ZodTypeAny> {
5
5
  name: string;
6
- args: Partial<z.infer<S>>;
6
+ parameters: Partial<z.infer<S>>;
7
7
  status: "inProgress";
8
8
  result: undefined;
9
9
  }
10
10
  interface RenderToolExecutingProps<S extends z.ZodTypeAny> {
11
11
  name: string;
12
- args: z.infer<S>;
12
+ parameters: z.infer<S>;
13
13
  status: "executing";
14
14
  result: undefined;
15
15
  }
16
16
  interface RenderToolCompleteProps<S extends z.ZodTypeAny> {
17
17
  name: string;
18
- args: z.infer<S>;
18
+ parameters: z.infer<S>;
19
19
  status: "complete";
20
20
  result: string;
21
21
  }
@@ -52,10 +52,10 @@ declare function useRenderTool(config: {
52
52
  /**
53
53
  * Registers a name-scoped renderer for tool calls.
54
54
  *
55
- * The provided `args` Zod schema defines the typed shape of `props.args`
55
+ * The provided `parameters` Zod schema defines the typed shape of `props.parameters`
56
56
  * in `render` for `executing` and `complete` states.
57
57
  *
58
- * @typeParam S - Zod schema type describing tool call args.
58
+ * @typeParam S - Zod schema type describing tool call parameters.
59
59
  * @param config - Named renderer configuration.
60
60
  * @param deps - Optional dependencies to refresh registration.
61
61
  *
@@ -64,10 +64,10 @@ declare function useRenderTool(config: {
64
64
  * useRenderTool(
65
65
  * {
66
66
  * name: "searchDocs",
67
- * args: z.object({ query: z.string() }),
68
- * render: ({ status, args, result }) => {
67
+ * parameters: z.object({ query: z.string() }),
68
+ * render: ({ status, parameters, result }) => {
69
69
  * if (status === "inProgress") return <div>Preparing...</div>;
70
- * if (status === "executing") return <div>Searching {args.query}</div>;
70
+ * if (status === "executing") return <div>Searching {parameters.query}</div>;
71
71
  * return <div>{result}</div>;
72
72
  * },
73
73
  * },
@@ -77,7 +77,7 @@ declare function useRenderTool(config: {
77
77
  */
78
78
  declare function useRenderTool<S extends z.ZodTypeAny>(config: {
79
79
  name: string;
80
- args: S;
80
+ parameters: S;
81
81
  render: (props: RenderToolProps<S>) => React.ReactElement;
82
82
  agentId?: string;
83
83
  }, deps?: ReadonlyArray<unknown>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-render-tool.d.mts","names":[],"sources":["../../src/hooks/use-render-tool.tsx"],"mappings":";;;UAQiB,yBAAA,WAAoC,CAAA,CAAE,UAAA;EACrD,IAAA;EACA,IAAA,EAAM,OAAA,CAAQ,CAAA,CAAE,KAAA,CAAM,CAAA;EACtB,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,wBAAA,WAAmC,CAAA,CAAE,UAAA;EACpD,IAAA;EACA,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,CAAA;EACd,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,uBAAA,WAAkC,CAAA,CAAE,UAAA;EACnD,IAAA;EACA,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,CAAA;EACd,MAAA;EACA,MAAA;AAAA;AAAA,KAGU,eAAA,WAA0B,CAAA,CAAE,UAAA,IACpC,yBAAA,CAA0B,CAAA,IAC1B,wBAAA,CAAyB,CAAA,IACzB,uBAAA,CAAwB,CAAA;;;;;;AAjB5B;;;;;;;;;;;;;;;;;;;iBAkDgB,aAAA,CACd,MAAA;EACE,IAAA;EACA,MAAA,GAAS,KAAA,UAAe,KAAA,CAAM,YAAA;EAC9B,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA;;;;;;;;;;;;;;;;;AA1CT;;;;;;;;;;iBAuEgB,aAAA,WAAwB,CAAA,CAAE,UAAA,CAAA,CACxC,MAAA;EACE,IAAA;EACA,IAAA,EAAM,CAAA;EACN,MAAA,GAAS,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAO,KAAA,CAAM,YAAA;EAC7C,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA"}
1
+ {"version":3,"file":"use-render-tool.d.mts","names":[],"sources":["../../src/hooks/use-render-tool.tsx"],"mappings":";;;UAQiB,yBAAA,WAAoC,CAAA,CAAE,UAAA;EACrD,IAAA;EACA,UAAA,EAAY,OAAA,CAAQ,CAAA,CAAE,KAAA,CAAM,CAAA;EAC5B,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,wBAAA,WAAmC,CAAA,CAAE,UAAA;EACpD,IAAA;EACA,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA;EACpB,MAAA;EACA,MAAA;AAAA;AAAA,UAGe,uBAAA,WAAkC,CAAA,CAAE,UAAA;EACnD,IAAA;EACA,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA;EACpB,MAAA;EACA,MAAA;AAAA;AAAA,KAGU,eAAA,WAA0B,CAAA,CAAE,UAAA,IACpC,yBAAA,CAA0B,CAAA,IAC1B,wBAAA,CAAyB,CAAA,IACzB,uBAAA,CAAwB,CAAA;;;;;;AAjB5B;;;;;;;;;;;;;;;;;;;iBAkDgB,aAAA,CACd,MAAA;EACE,IAAA;EACA,MAAA,GAAS,KAAA,UAAe,KAAA,CAAM,YAAA;EAC9B,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA;;;;;;;;;;;;;;;;;AA1CT;;;;;;;;;;iBAuEgB,aAAA,WAAwB,CAAA,CAAE,UAAA,CAAA,CACxC,MAAA;EACE,IAAA;EACA,UAAA,EAAY,CAAA;EACZ,MAAA,GAAS,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAO,KAAA,CAAM,YAAA;EAC7C,OAAA;AAAA,GAEF,IAAA,GAAO,aAAA"}
@@ -12,7 +12,7 @@ const EMPTY_DEPS = [];
12
12
  * - keeps renderer entries on cleanup so historical chat tool calls can still render,
13
13
  * - refreshes registration when `deps` change.
14
14
  *
15
- * @typeParam S - Zod schema type describing tool call args.
15
+ * @typeParam S - Zod schema type describing tool call parameters.
16
16
  * @param config - Renderer config for wildcard or named tools.
17
17
  * @param deps - Optional dependencies to refresh registration.
18
18
  *
@@ -21,9 +21,9 @@ const EMPTY_DEPS = [];
21
21
  * useRenderTool(
22
22
  * {
23
23
  * name: "searchDocs",
24
- * args: z.object({ query: z.string() }),
25
- * render: ({ status, args, result }) => {
26
- * if (status === "executing") return <div>Searching {args.query}</div>;
24
+ * parameters: z.object({ query: z.string() }),
25
+ * render: ({ status, parameters, result }) => {
26
+ * if (status === "executing") return <div>Searching {parameters.query}</div>;
27
27
  * if (status === "complete") return <div>{result}</div>;
28
28
  * return <div>Preparing...</div>;
29
29
  * },
@@ -37,7 +37,7 @@ const EMPTY_DEPS = [];
37
37
  * useRenderTool(
38
38
  * {
39
39
  * name: "summarize",
40
- * args: z.object({ text: z.string() }),
40
+ * parameters: z.object({ text: z.string() }),
41
41
  * agentId: "research-agent",
42
42
  * render: ({ name, status }) => <div>{name}: {status}</div>,
43
43
  * },
@@ -49,14 +49,20 @@ function useRenderTool(config, deps) {
49
49
  const { copilotkit } = useCopilotKit();
50
50
  const extraDeps = deps ?? EMPTY_DEPS;
51
51
  useEffect(() => {
52
- const renderer = config.name === "*" && !config.args ? defineToolCallRenderer({
52
+ const renderer = config.name === "*" && !config.parameters ? defineToolCallRenderer({
53
53
  name: "*",
54
- render: config.render,
54
+ render: (props) => config.render({
55
+ ...props,
56
+ parameters: props.args
57
+ }),
55
58
  ...config.agentId ? { agentId: config.agentId } : {}
56
59
  }) : defineToolCallRenderer({
57
60
  name: config.name,
58
- args: config.args,
59
- render: config.render,
61
+ args: config.parameters,
62
+ render: (props) => config.render({
63
+ ...props,
64
+ parameters: props.args
65
+ }),
60
66
  ...config.agentId ? { agentId: config.agentId } : {}
61
67
  });
62
68
  const keyOf = (rc) => `${rc.agentId ?? ""}:${rc.name}`;
@@ -1 +1 @@
1
- {"version":3,"file":"use-render-tool.mjs","names":[],"sources":["../../src/hooks/use-render-tool.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { z } from \"zod\";\nimport { useCopilotKit } from \"../providers/CopilotKitProvider\";\nimport { defineToolCallRenderer } from \"../types/defineToolCallRenderer\";\nimport type { ReactToolCallRenderer } from \"../types/react-tool-call-renderer\";\n\nconst EMPTY_DEPS: ReadonlyArray<unknown> = [];\n\nexport interface RenderToolInProgressProps<S extends z.ZodTypeAny> {\n name: string;\n args: Partial<z.infer<S>>;\n status: \"inProgress\";\n result: undefined;\n}\n\nexport interface RenderToolExecutingProps<S extends z.ZodTypeAny> {\n name: string;\n args: z.infer<S>;\n status: \"executing\";\n result: undefined;\n}\n\nexport interface RenderToolCompleteProps<S extends z.ZodTypeAny> {\n name: string;\n args: z.infer<S>;\n status: \"complete\";\n result: string;\n}\n\nexport type RenderToolProps<S extends z.ZodTypeAny> =\n | RenderToolInProgressProps<S>\n | RenderToolExecutingProps<S>\n | RenderToolCompleteProps<S>;\n\ntype RenderToolConfig<S extends z.ZodTypeAny> = {\n name: string;\n args?: S;\n render: (props: RenderToolProps<S>) => React.ReactElement;\n agentId?: string;\n};\n\n/**\n * Registers a wildcard (`\"*\"`) renderer for tool calls.\n *\n * The wildcard renderer is used as a fallback when no exact name-matched\n * renderer is registered for a tool call.\n *\n * @param config - Wildcard renderer configuration.\n * @param deps - Optional dependencies to refresh registration.\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"*\",\n * render: ({ name, status }) => (\n * <div>\n * {status === \"complete\" ? \"✓\" : \"⏳\"} {name}\n * </div>\n * ),\n * },\n * [],\n * );\n * ```\n */\nexport function useRenderTool(\n config: {\n name: \"*\";\n render: (props: any) => React.ReactElement;\n agentId?: string;\n },\n deps?: ReadonlyArray<unknown>,\n): void;\n\n/**\n * Registers a name-scoped renderer for tool calls.\n *\n * The provided `args` Zod schema defines the typed shape of `props.args`\n * in `render` for `executing` and `complete` states.\n *\n * @typeParam S - Zod schema type describing tool call args.\n * @param config - Named renderer configuration.\n * @param deps - Optional dependencies to refresh registration.\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"searchDocs\",\n * args: z.object({ query: z.string() }),\n * render: ({ status, args, result }) => {\n * if (status === \"inProgress\") return <div>Preparing...</div>;\n * if (status === \"executing\") return <div>Searching {args.query}</div>;\n * return <div>{result}</div>;\n * },\n * },\n * [],\n * );\n * ```\n */\nexport function useRenderTool<S extends z.ZodTypeAny>(\n config: {\n name: string;\n args: S;\n render: (props: RenderToolProps<S>) => React.ReactElement;\n agentId?: string;\n },\n deps?: ReadonlyArray<unknown>,\n): void;\n\n/**\n * Registers a renderer entry in CopilotKit's `renderToolCalls` registry.\n *\n * Key behavior:\n * - deduplicates by `agentId:name` (latest registration wins),\n * - keeps renderer entries on cleanup so historical chat tool calls can still render,\n * - refreshes registration when `deps` change.\n *\n * @typeParam S - Zod schema type describing tool call args.\n * @param config - Renderer config for wildcard or named tools.\n * @param deps - Optional dependencies to refresh registration.\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"searchDocs\",\n * args: z.object({ query: z.string() }),\n * render: ({ status, args, result }) => {\n * if (status === \"executing\") return <div>Searching {args.query}</div>;\n * if (status === \"complete\") return <div>{result}</div>;\n * return <div>Preparing...</div>;\n * },\n * },\n * [],\n * );\n * ```\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"summarize\",\n * args: z.object({ text: z.string() }),\n * agentId: \"research-agent\",\n * render: ({ name, status }) => <div>{name}: {status}</div>,\n * },\n * [selectedAgentId],\n * );\n * ```\n */\nexport function useRenderTool<S extends z.ZodTypeAny>(\n config: RenderToolConfig<S>,\n deps?: ReadonlyArray<unknown>,\n): void {\n const { copilotkit } = useCopilotKit();\n const extraDeps = deps ?? EMPTY_DEPS;\n\n useEffect(() => {\n // Build the ReactToolCallRenderer via defineToolCallRenderer\n const renderer =\n config.name === \"*\" && !config.args\n ? defineToolCallRenderer({\n name: \"*\",\n render: config.render,\n ...(config.agentId ? { agentId: config.agentId } : {}),\n })\n : defineToolCallRenderer({\n name: config.name,\n args: config.args!,\n render: config.render,\n ...(config.agentId ? { agentId: config.agentId } : {}),\n });\n\n // Dedupe by \"agentId:name\" key, same pattern as useFrontendTool\n const keyOf = (rc: ReactToolCallRenderer) =>\n `${rc.agentId ?? \"\"}:${rc.name}`;\n const currentRenderToolCalls =\n copilotkit.renderToolCalls as ReactToolCallRenderer[];\n\n const mergedMap = new Map<string, ReactToolCallRenderer>();\n for (const rc of currentRenderToolCalls) {\n mergedMap.set(keyOf(rc), rc);\n }\n\n mergedMap.set(keyOf(renderer), renderer);\n\n copilotkit.setRenderToolCalls(Array.from(mergedMap.values()));\n\n // No cleanup removal — keeps renderer for chat history, same as useFrontendTool\n }, [config.name, copilotkit, extraDeps.length, ...extraDeps]);\n}\n"],"mappings":";;;;;AAMA,MAAM,aAAqC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiJ7C,SAAgB,cACd,QACA,MACM;CACN,MAAM,EAAE,eAAe,eAAe;CACtC,MAAM,YAAY,QAAQ;AAE1B,iBAAgB;EAEd,MAAM,WACJ,OAAO,SAAS,OAAO,CAAC,OAAO,OAC3B,uBAAuB;GACrB,MAAM;GACN,QAAQ,OAAO;GACf,GAAI,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,GAAG,EAAE;GACtD,CAAC,GACF,uBAAuB;GACrB,MAAM,OAAO;GACb,MAAM,OAAO;GACb,QAAQ,OAAO;GACf,GAAI,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,GAAG,EAAE;GACtD,CAAC;EAGR,MAAM,SAAS,OACb,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG;EAC5B,MAAM,yBACJ,WAAW;EAEb,MAAM,4BAAY,IAAI,KAAoC;AAC1D,OAAK,MAAM,MAAM,uBACf,WAAU,IAAI,MAAM,GAAG,EAAE,GAAG;AAG9B,YAAU,IAAI,MAAM,SAAS,EAAE,SAAS;AAExC,aAAW,mBAAmB,MAAM,KAAK,UAAU,QAAQ,CAAC,CAAC;IAG5D;EAAC,OAAO;EAAM;EAAY,UAAU;EAAQ,GAAG;EAAU,CAAC"}
1
+ {"version":3,"file":"use-render-tool.mjs","names":[],"sources":["../../src/hooks/use-render-tool.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { z } from \"zod\";\nimport { useCopilotKit } from \"../providers/CopilotKitProvider\";\nimport { defineToolCallRenderer } from \"../types/defineToolCallRenderer\";\nimport type { ReactToolCallRenderer } from \"../types/react-tool-call-renderer\";\n\nconst EMPTY_DEPS: ReadonlyArray<unknown> = [];\n\nexport interface RenderToolInProgressProps<S extends z.ZodTypeAny> {\n name: string;\n parameters: Partial<z.infer<S>>;\n status: \"inProgress\";\n result: undefined;\n}\n\nexport interface RenderToolExecutingProps<S extends z.ZodTypeAny> {\n name: string;\n parameters: z.infer<S>;\n status: \"executing\";\n result: undefined;\n}\n\nexport interface RenderToolCompleteProps<S extends z.ZodTypeAny> {\n name: string;\n parameters: z.infer<S>;\n status: \"complete\";\n result: string;\n}\n\nexport type RenderToolProps<S extends z.ZodTypeAny> =\n | RenderToolInProgressProps<S>\n | RenderToolExecutingProps<S>\n | RenderToolCompleteProps<S>;\n\ntype RenderToolConfig<S extends z.ZodTypeAny> = {\n name: string;\n parameters?: S;\n render: (props: RenderToolProps<S>) => React.ReactElement;\n agentId?: string;\n};\n\n/**\n * Registers a wildcard (`\"*\"`) renderer for tool calls.\n *\n * The wildcard renderer is used as a fallback when no exact name-matched\n * renderer is registered for a tool call.\n *\n * @param config - Wildcard renderer configuration.\n * @param deps - Optional dependencies to refresh registration.\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"*\",\n * render: ({ name, status }) => (\n * <div>\n * {status === \"complete\" ? \"✓\" : \"⏳\"} {name}\n * </div>\n * ),\n * },\n * [],\n * );\n * ```\n */\nexport function useRenderTool(\n config: {\n name: \"*\";\n render: (props: any) => React.ReactElement;\n agentId?: string;\n },\n deps?: ReadonlyArray<unknown>,\n): void;\n\n/**\n * Registers a name-scoped renderer for tool calls.\n *\n * The provided `parameters` Zod schema defines the typed shape of `props.parameters`\n * in `render` for `executing` and `complete` states.\n *\n * @typeParam S - Zod schema type describing tool call parameters.\n * @param config - Named renderer configuration.\n * @param deps - Optional dependencies to refresh registration.\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"searchDocs\",\n * parameters: z.object({ query: z.string() }),\n * render: ({ status, parameters, result }) => {\n * if (status === \"inProgress\") return <div>Preparing...</div>;\n * if (status === \"executing\") return <div>Searching {parameters.query}</div>;\n * return <div>{result}</div>;\n * },\n * },\n * [],\n * );\n * ```\n */\nexport function useRenderTool<S extends z.ZodTypeAny>(\n config: {\n name: string;\n parameters: S;\n render: (props: RenderToolProps<S>) => React.ReactElement;\n agentId?: string;\n },\n deps?: ReadonlyArray<unknown>,\n): void;\n\n/**\n * Registers a renderer entry in CopilotKit's `renderToolCalls` registry.\n *\n * Key behavior:\n * - deduplicates by `agentId:name` (latest registration wins),\n * - keeps renderer entries on cleanup so historical chat tool calls can still render,\n * - refreshes registration when `deps` change.\n *\n * @typeParam S - Zod schema type describing tool call parameters.\n * @param config - Renderer config for wildcard or named tools.\n * @param deps - Optional dependencies to refresh registration.\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"searchDocs\",\n * parameters: z.object({ query: z.string() }),\n * render: ({ status, parameters, result }) => {\n * if (status === \"executing\") return <div>Searching {parameters.query}</div>;\n * if (status === \"complete\") return <div>{result}</div>;\n * return <div>Preparing...</div>;\n * },\n * },\n * [],\n * );\n * ```\n *\n * @example\n * ```tsx\n * useRenderTool(\n * {\n * name: \"summarize\",\n * parameters: z.object({ text: z.string() }),\n * agentId: \"research-agent\",\n * render: ({ name, status }) => <div>{name}: {status}</div>,\n * },\n * [selectedAgentId],\n * );\n * ```\n */\nexport function useRenderTool<S extends z.ZodTypeAny>(\n config: RenderToolConfig<S>,\n deps?: ReadonlyArray<unknown>,\n): void {\n const { copilotkit } = useCopilotKit();\n const extraDeps = deps ?? EMPTY_DEPS;\n\n useEffect(() => {\n // Build the ReactToolCallRenderer via defineToolCallRenderer\n const renderer =\n config.name === \"*\" && !config.parameters\n ? defineToolCallRenderer({\n name: \"*\",\n render: (props) =>\n config.render({ ...props, parameters: props.args }),\n ...(config.agentId ? { agentId: config.agentId } : {}),\n })\n : defineToolCallRenderer({\n name: config.name,\n args: config.parameters!,\n render: (props) =>\n config.render({ ...props, parameters: props.args }),\n ...(config.agentId ? { agentId: config.agentId } : {}),\n });\n\n // Dedupe by \"agentId:name\" key, same pattern as useFrontendTool\n const keyOf = (rc: ReactToolCallRenderer) =>\n `${rc.agentId ?? \"\"}:${rc.name}`;\n const currentRenderToolCalls =\n copilotkit.renderToolCalls as ReactToolCallRenderer[];\n\n const mergedMap = new Map<string, ReactToolCallRenderer>();\n for (const rc of currentRenderToolCalls) {\n mergedMap.set(keyOf(rc), rc);\n }\n\n mergedMap.set(keyOf(renderer), renderer);\n\n copilotkit.setRenderToolCalls(Array.from(mergedMap.values()));\n\n // No cleanup removal — keeps renderer for chat history, same as useFrontendTool\n }, [config.name, copilotkit, extraDeps.length, ...extraDeps]);\n}\n"],"mappings":";;;;;AAMA,MAAM,aAAqC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiJ7C,SAAgB,cACd,QACA,MACM;CACN,MAAM,EAAE,eAAe,eAAe;CACtC,MAAM,YAAY,QAAQ;AAE1B,iBAAgB;EAEd,MAAM,WACJ,OAAO,SAAS,OAAO,CAAC,OAAO,aAC3B,uBAAuB;GACrB,MAAM;GACN,SAAS,UACP,OAAO,OAAO;IAAE,GAAG;IAAO,YAAY,MAAM;IAAM,CAAC;GACrD,GAAI,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,GAAG,EAAE;GACtD,CAAC,GACF,uBAAuB;GACrB,MAAM,OAAO;GACb,MAAM,OAAO;GACb,SAAS,UACP,OAAO,OAAO;IAAE,GAAG;IAAO,YAAY,MAAM;IAAM,CAAC;GACrD,GAAI,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,GAAG,EAAE;GACtD,CAAC;EAGR,MAAM,SAAS,OACb,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG;EAC5B,MAAM,yBACJ,WAAW;EAEb,MAAM,4BAAY,IAAI,KAAoC;AAC1D,OAAK,MAAM,MAAM,uBACf,WAAU,IAAI,MAAM,GAAG,EAAE,GAAG;AAG9B,YAAU,IAAI,MAAM,SAAS,EAAE,SAAS;AAExC,aAAW,mBAAmB,MAAM,KAAK,UAAU,QAAQ,CAAC,CAAC;IAG5D;EAAC,OAAO;EAAM;EAAY,UAAU;EAAQ,GAAG;EAAU,CAAC"}