@copilotkit/react-textarea 0.19.0-alpha.4 → 0.19.0-alpha.5

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 (277) hide show
  1. package/.turbo/turbo-build.log +129 -190
  2. package/CHANGELOG.md +10 -0
  3. package/dist/chunk-2NURR2DX.mjs +47 -0
  4. package/dist/chunk-2NURR2DX.mjs.map +1 -0
  5. package/dist/chunk-4HSJ5XUO.mjs +107 -0
  6. package/dist/chunk-4HSJ5XUO.mjs.map +1 -0
  7. package/dist/chunk-4S5ZJH3I.mjs +18 -0
  8. package/dist/chunk-4S5ZJH3I.mjs.map +1 -0
  9. package/dist/chunk-55EGOC5T.mjs +87 -0
  10. package/dist/chunk-55EGOC5T.mjs.map +1 -0
  11. package/dist/chunk-5ARCOTW3.mjs +34 -0
  12. package/dist/chunk-5ARCOTW3.mjs.map +1 -0
  13. package/dist/chunk-5EJ5XOGP.mjs +22 -0
  14. package/dist/chunk-5EJ5XOGP.mjs.map +1 -0
  15. package/dist/chunk-5FO6ISW4.mjs +3 -0
  16. package/dist/chunk-5FO6ISW4.mjs.map +1 -0
  17. package/dist/chunk-6Z6Z2K7O.mjs +20 -0
  18. package/dist/chunk-6Z6Z2K7O.mjs.map +1 -0
  19. package/dist/chunk-7PSM4AUU.mjs +201 -0
  20. package/dist/chunk-7PSM4AUU.mjs.map +1 -0
  21. package/dist/chunk-A2RRLD23.mjs +69 -0
  22. package/dist/chunk-A2RRLD23.mjs.map +1 -0
  23. package/dist/chunk-CSGFJU3L.mjs +65 -0
  24. package/dist/chunk-CSGFJU3L.mjs.map +1 -0
  25. package/dist/chunk-D7SEV5PR.mjs +12 -0
  26. package/dist/chunk-D7SEV5PR.mjs.map +1 -0
  27. package/dist/chunk-DE5K76I2.mjs +3 -0
  28. package/dist/chunk-DE5K76I2.mjs.map +1 -0
  29. package/dist/chunk-F3MHL6ZY.mjs +25 -0
  30. package/dist/chunk-F3MHL6ZY.mjs.map +1 -0
  31. package/dist/chunk-FN7GDKKG.mjs +29 -0
  32. package/dist/chunk-FN7GDKKG.mjs.map +1 -0
  33. package/dist/chunk-GQJYEVBT.mjs +461 -0
  34. package/dist/chunk-GQJYEVBT.mjs.map +1 -0
  35. package/dist/chunk-H4VKQGVU.mjs +3 -0
  36. package/dist/chunk-H4VKQGVU.mjs.map +1 -0
  37. package/dist/chunk-HAFHLU4N.mjs +55 -0
  38. package/dist/chunk-HAFHLU4N.mjs.map +1 -0
  39. package/dist/chunk-IU3WTXLQ.mjs +3 -0
  40. package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
  41. package/dist/chunk-IXJ2HCOA.mjs +101 -0
  42. package/dist/chunk-IXJ2HCOA.mjs.map +1 -0
  43. package/dist/chunk-JAFCXEPU.mjs +10 -0
  44. package/dist/chunk-JAFCXEPU.mjs.map +1 -0
  45. package/dist/chunk-KCHYD3EB.mjs +107 -0
  46. package/dist/chunk-KCHYD3EB.mjs.map +1 -0
  47. package/dist/chunk-KGKLUWKW.mjs +47 -0
  48. package/dist/chunk-KGKLUWKW.mjs.map +1 -0
  49. package/dist/chunk-L7VVZH4Q.mjs +3 -0
  50. package/dist/chunk-L7VVZH4Q.mjs.map +1 -0
  51. package/dist/chunk-LNAIMEB2.mjs +34 -0
  52. package/dist/chunk-LNAIMEB2.mjs.map +1 -0
  53. package/dist/chunk-MMVDU6DF.mjs +3 -0
  54. package/dist/chunk-MMVDU6DF.mjs.map +1 -0
  55. package/dist/chunk-MPME5BW2.mjs +59 -0
  56. package/dist/chunk-MPME5BW2.mjs.map +1 -0
  57. package/dist/chunk-MRXNTQOX.mjs +55 -0
  58. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  59. package/dist/chunk-ND5PXTAW.mjs +17 -0
  60. package/dist/chunk-ND5PXTAW.mjs.map +1 -0
  61. package/dist/chunk-NKW5OU2S.mjs +33 -0
  62. package/dist/chunk-NKW5OU2S.mjs.map +1 -0
  63. package/dist/chunk-O5OWT5GE.mjs +114 -0
  64. package/dist/chunk-O5OWT5GE.mjs.map +1 -0
  65. package/dist/chunk-OD7ZMOVE.mjs +45 -0
  66. package/dist/chunk-OD7ZMOVE.mjs.map +1 -0
  67. package/dist/chunk-OELUUJZY.mjs +16 -0
  68. package/dist/chunk-OELUUJZY.mjs.map +1 -0
  69. package/dist/chunk-PHFEZQTN.mjs +44 -0
  70. package/dist/chunk-PHFEZQTN.mjs.map +1 -0
  71. package/dist/chunk-QL2GYGG5.mjs +19 -0
  72. package/dist/chunk-QL2GYGG5.mjs.map +1 -0
  73. package/dist/chunk-RQHOUUXQ.mjs +29 -0
  74. package/dist/chunk-RQHOUUXQ.mjs.map +1 -0
  75. package/dist/chunk-UHD44NC5.mjs +101 -0
  76. package/dist/chunk-UHD44NC5.mjs.map +1 -0
  77. package/dist/chunk-VBIJPE3H.mjs +108 -0
  78. package/dist/chunk-VBIJPE3H.mjs.map +1 -0
  79. package/dist/chunk-WADHCMPK.mjs +3 -0
  80. package/dist/chunk-WADHCMPK.mjs.map +1 -0
  81. package/dist/chunk-WJHSY5T6.mjs +3 -0
  82. package/dist/chunk-WJHSY5T6.mjs.map +1 -0
  83. package/dist/chunk-WJYQWL4I.mjs +27 -0
  84. package/dist/chunk-WJYQWL4I.mjs.map +1 -0
  85. package/dist/chunk-XA7M72ZO.mjs +106 -0
  86. package/dist/chunk-XA7M72ZO.mjs.map +1 -0
  87. package/dist/chunk-XDT7BF3V.mjs +81 -0
  88. package/dist/chunk-XDT7BF3V.mjs.map +1 -0
  89. package/dist/chunk-XHUMROEY.mjs +91 -0
  90. package/dist/chunk-XHUMROEY.mjs.map +1 -0
  91. package/dist/chunk-YQU7WG7T.mjs +83 -0
  92. package/dist/chunk-YQU7WG7T.mjs.map +1 -0
  93. package/dist/chunk-YTOPHPSG.mjs +45 -0
  94. package/dist/chunk-YTOPHPSG.mjs.map +1 -0
  95. package/dist/chunk-YW3REYX6.mjs +23 -0
  96. package/dist/chunk-YW3REYX6.mjs.map +1 -0
  97. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +33 -1870
  98. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +1 -1
  99. package/dist/components/base-copilot-textarea/render-element.mjs +3 -52
  100. package/dist/components/base-copilot-textarea/render-element.mjs.map +1 -1
  101. package/dist/components/base-copilot-textarea/render-placeholder.mjs +3 -46
  102. package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +1 -1
  103. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +4 -86
  104. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +1 -1
  105. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +3 -57
  106. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +1 -1
  107. package/dist/components/copilot-textarea/copilot-textarea.mjs +43 -2339
  108. package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -1
  109. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +3 -22
  110. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +1 -1
  111. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +3 -125
  112. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +1 -1
  113. package/dist/components/hovering-toolbar/hovering-toolbar.mjs +16 -1015
  114. package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +1 -1
  115. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +10 -721
  116. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +1 -1
  117. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +11 -734
  118. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +1 -1
  119. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +12 -734
  120. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +1 -1
  121. package/dist/components/index.mjs +44 -2340
  122. package/dist/components/index.mjs.map +1 -1
  123. package/dist/components/manual-ui/chip-with-icon.mjs +6 -5
  124. package/dist/components/manual-ui/chip-with-icon.mjs.map +1 -1
  125. package/dist/components/source-search-box/source-search-box.mjs +10 -323
  126. package/dist/components/source-search-box/source-search-box.mjs.map +1 -1
  127. package/dist/components/ui/button.mjs +4 -88
  128. package/dist/components/ui/button.mjs.map +1 -1
  129. package/dist/components/ui/card.mjs +7 -53
  130. package/dist/components/ui/card.mjs.map +1 -1
  131. package/dist/components/ui/command.mjs +5 -266
  132. package/dist/components/ui/command.mjs.map +1 -1
  133. package/dist/components/ui/dialog.mjs +4 -164
  134. package/dist/components/ui/dialog.mjs.map +1 -1
  135. package/dist/components/ui/label.mjs +4 -63
  136. package/dist/components/ui/label.mjs.map +1 -1
  137. package/dist/components/ui/separator.mjs +8 -50
  138. package/dist/components/ui/separator.mjs.map +1 -1
  139. package/dist/components/ui/textarea.mjs +7 -48
  140. package/dist/components/ui/textarea.mjs.map +1 -1
  141. package/dist/context/index.mjs +2 -0
  142. package/dist/context/index.mjs.map +1 -1
  143. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +6 -168
  144. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +1 -1
  145. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +4 -168
  146. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -1
  147. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +5 -155
  148. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -1
  149. package/dist/hooks/index.mjs +2 -0
  150. package/dist/hooks/index.mjs.map +1 -1
  151. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +4 -90
  152. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +1 -1
  153. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +4 -143
  154. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +1 -1
  155. package/dist/hooks/misc/use-autosize-textarea.mjs +3 -15
  156. package/dist/hooks/misc/use-autosize-textarea.mjs.map +1 -1
  157. package/dist/index.mjs +48 -2343
  158. package/dist/index.mjs.map +1 -1
  159. package/dist/lib/debouncer.mjs +3 -51
  160. package/dist/lib/debouncer.mjs.map +1 -1
  161. package/dist/lib/editor-to-text.mjs +3 -43
  162. package/dist/lib/editor-to-text.mjs.map +1 -1
  163. package/dist/lib/get-text-around-cursor.mjs +3 -109
  164. package/dist/lib/get-text-around-cursor.mjs.map +1 -1
  165. package/dist/lib/retry.mjs +3 -17
  166. package/dist/lib/retry.mjs.map +1 -1
  167. package/dist/lib/slatejs-edits/add-autocompletions.mjs +3 -25
  168. package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +1 -1
  169. package/dist/lib/slatejs-edits/clear-autocompletions.mjs +3 -23
  170. package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +1 -1
  171. package/dist/lib/slatejs-edits/replace-text.mjs +3 -27
  172. package/dist/lib/slatejs-edits/replace-text.mjs.map +1 -1
  173. package/dist/lib/slatejs-edits/with-partial-history.mjs +3 -106
  174. package/dist/lib/slatejs-edits/with-partial-history.mjs.map +1 -1
  175. package/dist/lib/stream-promise-flatten.mjs +3 -47
  176. package/dist/lib/stream-promise-flatten.mjs.map +1 -1
  177. package/dist/lib/utils.mjs +3 -71
  178. package/dist/lib/utils.mjs.map +1 -1
  179. package/dist/lib/utils.test.mjs +1 -0
  180. package/dist/lib/utils.test.mjs.map +1 -1
  181. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs +2 -0
  182. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map +1 -1
  183. package/dist/types/autosuggestions-config/autosuggestions-config.mjs +9 -312
  184. package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +1 -1
  185. package/dist/types/autosuggestions-config/editing-api-config.mjs +4 -155
  186. package/dist/types/autosuggestions-config/editing-api-config.mjs.map +1 -1
  187. package/dist/types/autosuggestions-config/index.mjs +10 -313
  188. package/dist/types/autosuggestions-config/index.mjs.map +1 -1
  189. package/dist/types/autosuggestions-config/insertions-api-config.mjs +4 -149
  190. package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +1 -1
  191. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs +3 -71
  192. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs.map +1 -1
  193. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs +2 -0
  194. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map +1 -1
  195. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs +2 -0
  196. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map +1 -1
  197. package/dist/types/autosuggestions-config/suggestions-api-config.mjs +4 -137
  198. package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +1 -1
  199. package/dist/types/base/autosuggestion-state.mjs +2 -0
  200. package/dist/types/base/autosuggestion-state.mjs.map +1 -1
  201. package/dist/types/base/autosuggestions-bare-function.mjs +2 -0
  202. package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -1
  203. package/dist/types/base/base-autosuggestions-config.mjs +3 -11
  204. package/dist/types/base/base-autosuggestions-config.mjs.map +1 -1
  205. package/dist/types/base/base-copilot-textarea-props.mjs +2 -0
  206. package/dist/types/base/base-copilot-textarea-props.mjs.map +1 -1
  207. package/dist/types/base/custom-editor.mjs +2 -0
  208. package/dist/types/base/custom-editor.mjs.map +1 -1
  209. package/dist/types/base/editor-autocomplete-state.mjs +4 -17
  210. package/dist/types/base/editor-autocomplete-state.mjs.map +1 -1
  211. package/dist/types/base/index.mjs +4 -11
  212. package/dist/types/base/index.mjs.map +1 -1
  213. package/dist/types/html-copilot-textarea-element.mjs +2 -0
  214. package/dist/types/html-copilot-textarea-element.mjs.map +1 -1
  215. package/dist/types/index.mjs +12 -314
  216. package/dist/types/index.mjs.map +1 -1
  217. package/package.json +3 -3
  218. package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +0 -13
  219. package/dist/components/base-copilot-textarea/render-element.d.ts +0 -6
  220. package/dist/components/base-copilot-textarea/render-placeholder.d.ts +0 -6
  221. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.d.ts +0 -6
  222. package/dist/components/base-copilot-textarea/use-add-branding-css.d.ts +0 -3
  223. package/dist/components/copilot-textarea/copilot-textarea.d.ts +0 -20
  224. package/dist/components/hovering-toolbar/hovering-editor-provider.d.ts +0 -13
  225. package/dist/components/hovering-toolbar/hovering-toolbar-components.d.ts +0 -18
  226. package/dist/components/hovering-toolbar/hovering-toolbar.d.ts +0 -8
  227. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.d.ts +0 -29
  228. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.d.ts +0 -12
  229. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.d.ts +0 -3
  230. package/dist/components/index.d.ts +0 -15
  231. package/dist/components/manual-ui/chip-with-icon.d.ts +0 -10
  232. package/dist/components/source-search-box/source-search-box.d.ts +0 -17
  233. package/dist/components/ui/button.d.ts +0 -14
  234. package/dist/components/ui/card.d.ts +0 -10
  235. package/dist/components/ui/command.d.ts +0 -48
  236. package/dist/components/ui/dialog.d.ts +0 -18
  237. package/dist/components/ui/label.d.ts +0 -8
  238. package/dist/components/ui/separator.d.ts +0 -6
  239. package/dist/components/ui/textarea.d.ts +0 -7
  240. package/dist/context/index.d.ts +0 -1
  241. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.ts +0 -13
  242. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts +0 -8
  243. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts +0 -7
  244. package/dist/hooks/index.d.ts +0 -1
  245. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +0 -22
  246. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts +0 -23
  247. package/dist/hooks/misc/use-autosize-textarea.d.ts +0 -5
  248. package/dist/index.d.ts +0 -15
  249. package/dist/lib/debouncer.d.ts +0 -11
  250. package/dist/lib/editor-to-text.d.ts +0 -7
  251. package/dist/lib/get-text-around-cursor.d.ts +0 -15
  252. package/dist/lib/retry.d.ts +0 -3
  253. package/dist/lib/slatejs-edits/add-autocompletions.d.ts +0 -8
  254. package/dist/lib/slatejs-edits/clear-autocompletions.d.ts +0 -8
  255. package/dist/lib/slatejs-edits/replace-text.d.ts +0 -5
  256. package/dist/lib/slatejs-edits/with-partial-history.d.ts +0 -10
  257. package/dist/lib/stream-promise-flatten.d.ts +0 -3
  258. package/dist/lib/utils.d.ts +0 -10
  259. package/dist/lib/utils.test.d.ts +0 -1
  260. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.d.ts +0 -25
  261. package/dist/types/autosuggestions-config/autosuggestions-config.d.ts +0 -20
  262. package/dist/types/autosuggestions-config/editing-api-config.d.ts +0 -17
  263. package/dist/types/autosuggestions-config/index.d.ts +0 -10
  264. package/dist/types/autosuggestions-config/insertions-api-config.d.ts +0 -17
  265. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.d.ts +0 -26
  266. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.d.ts +0 -3
  267. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.d.ts +0 -7
  268. package/dist/types/autosuggestions-config/suggestions-api-config.d.ts +0 -17
  269. package/dist/types/base/autosuggestion-state.d.ts +0 -8
  270. package/dist/types/base/autosuggestions-bare-function.d.ts +0 -17
  271. package/dist/types/base/base-autosuggestions-config.d.ts +0 -14
  272. package/dist/types/base/base-copilot-textarea-props.d.ts +0 -40
  273. package/dist/types/base/custom-editor.d.ts +0 -29
  274. package/dist/types/base/editor-autocomplete-state.d.ts +0 -10
  275. package/dist/types/base/index.d.ts +0 -4
  276. package/dist/types/html-copilot-textarea-element.d.ts +0 -7
  277. package/dist/types/index.d.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts","../../../src/lib/get-text-around-cursor.ts","../../../src/lib/slatejs-edits/replace-text.ts"],"sourcesContent":["import React from \"react\";\nimport { Editor } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\nimport { getFullEditorTextWithNewlines } from \"../../lib/get-text-around-cursor\";\nimport { replaceEditorText } from \"../../lib/slatejs-edits/replace-text\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nexport function usePopulateCopilotTextareaRef(\n editor: Editor,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n) {\n React.useImperativeHandle(\n ref,\n () => {\n class Combined {\n constructor(\n private customMethods: CustomMethods,\n private editorHtmlElement: HTMLElement\n ) {}\n\n [key: string]: any;\n\n get(target: any, propKey: string): any {\n if (this.isKeyOfCustomMethods(propKey)) {\n const value = this.customMethods[propKey];\n if (typeof value === \"function\") {\n return value.bind(this.customMethods);\n }\n return value;\n } else if (this.isKeyOfHTMLElement(propKey)) {\n const value = this.editorHtmlElement[propKey];\n if (typeof value === \"function\") {\n return value.bind(this.editorHtmlElement);\n }\n return value;\n }\n }\n\n set(target: any, propKey: string, value: any): boolean {\n if (this.isKeyOfCustomMethods(propKey)) {\n (this.customMethods as any)[propKey] = value;\n } else if (this.isKeyOfHTMLElement(propKey)) {\n (this.editorHtmlElement as any)[propKey] = value;\n } else {\n // Default behavior (optional)\n target[propKey] = value;\n }\n return true;\n }\n\n private isKeyOfCustomMethods(key: string): key is keyof CustomMethods {\n return key in this.customMethods;\n }\n\n private isKeyOfHTMLElement(key: string): key is keyof HTMLElement {\n return key in this.editorHtmlElement;\n }\n }\n\n const handler = {\n get(target: any, propKey: keyof CustomMethods | keyof HTMLElement) {\n return target.get(target, propKey);\n },\n set(\n target: any,\n propKey: keyof CustomMethods | keyof HTMLElement,\n value: any\n ) {\n return target.set(target, propKey, value);\n },\n };\n\n class CustomMethods {\n constructor(private editor: CustomEditor) {}\n\n focus() {\n ReactEditor.focus(this.editor);\n }\n\n blur() {\n ReactEditor.blur(this.editor);\n }\n\n get value() {\n return getFullEditorTextWithNewlines(this.editor);\n }\n set value(value: string) {\n replaceEditorText(this.editor, value);\n }\n }\n\n const editorHtmlElement = ReactEditor.toDOMNode(editor, editor);\n const customMethods = new CustomMethods(editor);\n\n const combined = new Combined(customMethods, editorHtmlElement);\n return new Proxy(combined, handler);\n },\n [editor]\n );\n}\n","import {\n Editor,\n Node,\n Path,\n Range,\n Text,\n Element,\n BasePoint,\n BaseRange,\n Point,\n} from \"slate\";\nimport { EditorAutocompleteState } from \"../types/base/editor-autocomplete-state\";\n\nexport interface EditorTextState {\n selection: BaseRange;\n\n textBeforeCursor: string;\n selectedText: string;\n textAfterCursor: string;\n}\n\nexport function getTextAroundCollapsedCursor(\n editor: Editor\n): EditorAutocompleteState | null {\n const { selection } = editor;\n if (!selection || !Range.isCollapsed(selection)) {\n return null;\n }\n\n const cursorPoint = selection.anchor;\n\n // Create two ranges: one before the anchor and one after\n const beforeRange: Range = {\n anchor: Editor.start(editor, []),\n focus: cursorPoint,\n };\n const afterRange: Range = {\n anchor: cursorPoint,\n focus: Editor.end(editor, []),\n };\n\n // Extract text for these ranges\n const before = extractTextWithNewlines(editor, beforeRange);\n const after = extractTextWithNewlines(editor, afterRange);\n\n return {\n cursorPoint: cursorPoint,\n textBeforeCursor: before,\n textAfterCursor: after,\n };\n}\n\nexport function getTextAroundSelection(editor: Editor): EditorTextState | null {\n const { selection } = editor;\n if (!selection) {\n return null;\n }\n\n const wellOrderedSelection = wellOrderedRange(selection);\n\n // Create two ranges: one before the anchor and one after\n const beforeRange: Range = {\n anchor: Editor.start(editor, []),\n focus: wellOrderedSelection.anchor,\n };\n const afterRange: Range = {\n anchor: wellOrderedSelection.focus,\n focus: Editor.end(editor, []),\n };\n\n // Extract text for these ranges\n const before = extractTextWithNewlines(editor, beforeRange);\n const after = extractTextWithNewlines(editor, afterRange);\n const selectedText = extractTextWithNewlines(editor, wellOrderedSelection);\n\n return {\n selection: wellOrderedSelection,\n textBeforeCursor: before,\n selectedText,\n textAfterCursor: after,\n };\n}\n\nexport function getFullEditorTextWithNewlines(editor: Editor): string {\n const fullDocumentRange: Range = {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n };\n return extractTextWithNewlines(editor, fullDocumentRange);\n}\n\n// Helper function to extract text with newlines\nexport function extractTextWithNewlines(editor: Editor, range: Range): string {\n const voids = false;\n const [start, end] = Range.edges(range);\n let text = \"\";\n let lastBlock: Node | null = null;\n\n for (const [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids,\n })) {\n let t = node.text;\n\n // Determine the parent block of the current text node\n const [block] = Editor.above(editor, {\n at: path,\n match: (n) => Element.isElement(n) && n.type === \"paragraph\",\n }) || [null];\n\n // If we encounter a new block, prepend a newline\n if (lastBlock !== block && block) {\n // check that lastBlock is not null to avoid adding a newline at the beginning\n if (lastBlock) {\n text += \"\\n\";\n }\n lastBlock = block;\n }\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n\n text += t;\n }\n\n return text;\n}\n\nfunction wellOrderedRange(range: BaseRange): BaseRange {\n const { anchor, focus } = range;\n // if anchor is before focus, return range as is\n if (Point.isBefore(anchor, focus)) {\n return range;\n }\n\n // if focus is before anchor, return range with anchor and focus swapped\n return {\n anchor: focus,\n focus: anchor,\n };\n}\n","import { Editor, Transforms } from \"slate\";\n\nexport function replaceEditorText(editor: Editor, newText: string) {\n // clear all previous text\n Transforms.delete(editor, {\n at: {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n },\n });\n\n // insert new text\n if (newText && newText !== \"\") {\n // don't insert empty text - results in strange visual behavior\n Transforms.insertNodes(\n editor,\n [\n {\n type: \"paragraph\",\n children: [{ text: newText }],\n },\n ],\n {\n at: [0],\n }\n );\n }\n}\n"],"mappings":";AAAA,OAAO,WAAW;AAElB,SAAS,mBAAmB;;;ACF5B;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,OACK;AAyEA,SAAS,8BAA8B,QAAwB;AACpE,QAAM,oBAA2B;AAAA,IAC/B,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AACA,SAAO,wBAAwB,QAAQ,iBAAiB;AAC1D;AAGO,SAAS,wBAAwB,QAAgB,OAAsB;AAC5E,QAAM,QAAQ;AACd,QAAM,CAAC,OAAO,GAAG,IAAI,MAAM,MAAM,KAAK;AACtC,MAAI,OAAO;AACX,MAAI,YAAyB;AAE7B,aAAW,CAAC,MAAM,IAAI,KAAK,OAAO,MAAM,QAAQ;AAAA,IAC9C,IAAI;AAAA,IACJ,OAAO,KAAK;AAAA,IACZ;AAAA,EACF,CAAC,GAAG;AACF,QAAI,IAAI,KAAK;AAGb,UAAM,CAAC,KAAK,IAAI,OAAO,MAAM,QAAQ;AAAA,MACnC,IAAI;AAAA,MACJ,OAAO,CAAC,MAAM,QAAQ,UAAU,CAAC,KAAK,EAAE,SAAS;AAAA,IACnD,CAAC,KAAK,CAAC,IAAI;AAGX,QAAI,cAAc,SAAS,OAAO;AAEhC,UAAI,WAAW;AACb,gBAAQ;AAAA,MACV;AACA,kBAAY;AAAA,IACd;AAEA,QAAI,KAAK,OAAO,MAAM,IAAI,IAAI,GAAG;AAC/B,UAAI,EAAE,MAAM,GAAG,IAAI,MAAM;AAAA,IAC3B;AAEA,QAAI,KAAK,OAAO,MAAM,MAAM,IAAI,GAAG;AACjC,UAAI,EAAE,MAAM,MAAM,MAAM;AAAA,IAC1B;AAEA,YAAQ;AAAA,EACV;AAEA,SAAO;AACT;;;ACpIA,SAAS,UAAAA,SAAQ,kBAAkB;AAE5B,SAAS,kBAAkB,QAAgB,SAAiB;AAEjE,aAAW,OAAO,QAAQ;AAAA,IACxB,IAAI;AAAA,MACF,QAAQA,QAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MAC/B,OAAOA,QAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,IAC9B;AAAA,EACF,CAAC;AAGD,MAAI,WAAW,YAAY,IAAI;AAE7B,eAAW;AAAA,MACT;AAAA,MACA;AAAA,QACE;AAAA,UACE,MAAM;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,QAAQ,CAAC;AAAA,QAC9B;AAAA,MACF;AAAA,MACA;AAAA,QACE,IAAI,CAAC,CAAC;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;AFnBO,SAAS,8BACd,QACA,KACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AACJ,YAAM,SAAS;AAAA,QACb,YACUC,gBACAC,oBACR;AAFQ,+BAAAD;AACA,mCAAAC;AAAA,QACP;AAAA,QAIH,IAAI,QAAa,SAAsB;AACrC,cAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,kBAAM,QAAQ,KAAK,cAAc;AACjC,gBAAI,OAAO,UAAU,YAAY;AAC/B,qBAAO,MAAM,KAAK,KAAK,aAAa;AAAA,YACtC;AACA,mBAAO;AAAA,UACT,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,kBAAM,QAAQ,KAAK,kBAAkB;AACrC,gBAAI,OAAO,UAAU,YAAY;AAC/B,qBAAO,MAAM,KAAK,KAAK,iBAAiB;AAAA,YAC1C;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,QAEA,IAAI,QAAa,SAAiB,OAAqB;AACrD,cAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,YAAC,KAAK,cAAsB,WAAW;AAAA,UACzC,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,YAAC,KAAK,kBAA0B,WAAW;AAAA,UAC7C,OAAO;AAEL,mBAAO,WAAW;AAAA,UACpB;AACA,iBAAO;AAAA,QACT;AAAA,QAEQ,qBAAqB,KAAyC;AACpE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAAA,QAEQ,mBAAmB,KAAuC;AAChE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAAA,MACF;AAEA,YAAM,UAAU;AAAA,QACd,IAAI,QAAa,SAAkD;AACjE,iBAAO,OAAO,IAAI,QAAQ,OAAO;AAAA,QACnC;AAAA,QACA,IACE,QACA,SACA,OACA;AACA,iBAAO,OAAO,IAAI,QAAQ,SAAS,KAAK;AAAA,QAC1C;AAAA,MACF;AAEA,YAAM,cAAc;AAAA,QAClB,YAAoBC,SAAsB;AAAtB,wBAAAA;AAAA,QAAuB;AAAA,QAE3C,QAAQ;AACN,sBAAY,MAAM,KAAK,MAAM;AAAA,QAC/B;AAAA,QAEA,OAAO;AACL,sBAAY,KAAK,KAAK,MAAM;AAAA,QAC9B;AAAA,QAEA,IAAI,QAAQ;AACV,iBAAO,8BAA8B,KAAK,MAAM;AAAA,QAClD;AAAA,QACA,IAAI,MAAM,OAAe;AACvB,4BAAkB,KAAK,QAAQ,KAAK;AAAA,QACtC;AAAA,MACF;AAEA,YAAM,oBAAoB,YAAY,UAAU,QAAQ,MAAM;AAC9D,YAAM,gBAAgB,IAAI,cAAc,MAAM;AAE9C,YAAM,WAAW,IAAI,SAAS,eAAe,iBAAiB;AAC9D,aAAO,IAAI,MAAM,UAAU,OAAO;AAAA,IACpC;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AACF;","names":["Editor","customMethods","editorHtmlElement","editor"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+ import '../chunk-H4VKQGVU.mjs';
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,91 +1,5 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
-
22
- // src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx
23
- import { CopilotContext } from "@copilotkit/react-core";
24
- import { useCallback, useContext } from "react";
25
-
26
- // src/lib/retry.tsx
27
- function retry(fn, retriesLeft = 2, interval = 200, backoff = 1.5) {
28
- return new Promise((resolve, reject) => {
29
- fn().then(resolve).catch((error) => {
30
- if (retriesLeft === 1) {
31
- reject(error);
32
- return;
33
- }
34
- setTimeout(() => {
35
- retry(fn, retriesLeft - 1, interval * backoff, backoff).then(resolve).catch(reject);
36
- }, interval);
37
- });
38
- });
39
- }
40
-
41
- // src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx
42
- function useMakeStandardAutosuggestionFunction(textareaPurpose, contextCategories, apiConfig) {
43
- const { getContextString } = useContext(CopilotContext);
44
- return useCallback(
45
- (editorState, abortSignal) => __async(this, null, function* () {
46
- const res = yield retry(() => __async(this, null, function* () {
47
- const messages = [
48
- {
49
- role: "system",
50
- content: apiConfig.makeSystemPrompt(
51
- textareaPurpose,
52
- getContextString(contextCategories)
53
- )
54
- },
55
- ...apiConfig.fewShotMessages,
56
- {
57
- role: "user",
58
- name: "TextAfterCursor",
59
- content: editorState.textAfterCursor
60
- },
61
- {
62
- role: "user",
63
- name: "TextBeforeCursor",
64
- content: editorState.textBeforeCursor
65
- }
66
- ];
67
- const stream = yield apiConfig.apiEndpoint.run(
68
- abortSignal,
69
- messages,
70
- apiConfig.forwardedParams
71
- );
72
- const reader = stream.getReader();
73
- let result = "";
74
- while (true) {
75
- const { done, value } = yield reader.read();
76
- if (done) {
77
- break;
78
- }
79
- result += value;
80
- }
81
- return result;
82
- }));
83
- return res;
84
- }),
85
- [apiConfig, getContextString, contextCategories, textareaPurpose]
86
- );
87
- }
88
- export {
89
- useMakeStandardAutosuggestionFunction
90
- };
1
+ export { useMakeStandardAutosuggestionFunction } from '../../chunk-HAFHLU4N.mjs';
2
+ import '../../chunk-4S5ZJH3I.mjs';
3
+ import '../../chunk-MRXNTQOX.mjs';
4
+ //# sourceMappingURL=out.js.map
91
5
  //# sourceMappingURL=use-make-standard-autosuggestions-function.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx","../../../src/lib/retry.tsx"],"sourcesContent":["import { CopilotContext } from \"@copilotkit/react-core\";\nimport { useCallback, useContext } from \"react\";\nimport {\n AutosuggestionsBareFunction,\n MinimalChatGPTMessage,\n} from \"../../types\";\nimport { retry } from \"../../lib/retry\";\nimport { InsertionEditorState } from \"../../types/base/autosuggestions-bare-function\";\nimport { SuggestionsApiConfig } from \"../../types/autosuggestions-config/suggestions-api-config\";\n/**\n * Returns a memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n * The function takes in the text before and after the cursor, and an abort signal.\n * It sends a POST request to the API endpoint with the messages array containing the system message, few shot messages, and user messages.\n * The function returns the suggestion from the API response.\n *\n * @param textareaPurpose - The purpose of the textarea. This is included in the system message.\n * @param apiEndpoint - The API endpoint to send the autosuggestion request to.\n * @param makeSystemMessage - A function that takes in a context string and returns a system message to include in the autosuggestion request.\n * @param fewShotMessages - An array of few shot messages to include in the autosuggestion request.\n * @param contextCategories - The categories of context strings we want to include. By default, we include the (default) \"global\" context category.\n * @returns A memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n */\nexport function useMakeStandardAutosuggestionFunction(\n textareaPurpose: string,\n contextCategories: string[] | undefined,\n apiConfig: SuggestionsApiConfig\n): AutosuggestionsBareFunction {\n const { getContextString } = useContext(CopilotContext);\n\n return useCallback(\n async (editorState: InsertionEditorState, abortSignal: AbortSignal) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: apiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString(contextCategories)\n ),\n },\n ...apiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n ];\n\n const stream = await apiConfig.apiEndpoint.run(\n abortSignal,\n messages,\n apiConfig.forwardedParams\n );\n\n // read the stream:\n const reader = stream.getReader();\n let result = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n result += value;\n }\n\n return result;\n });\n\n return res;\n },\n [apiConfig, getContextString, contextCategories, textareaPurpose]\n );\n}\n","export function retry<T>(\n fn: () => Promise<T>,\n retriesLeft: number = 2,\n interval: number = 200,\n backoff: number = 1.5\n): Promise<T> {\n return new Promise((resolve, reject) => {\n fn()\n .then(resolve)\n .catch((error) => {\n if (retriesLeft === 1) {\n reject(error);\n return;\n }\n\n setTimeout(() => {\n retry(fn, retriesLeft - 1, interval * backoff, backoff)\n .then(resolve)\n .catch(reject);\n }, interval);\n });\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,kBAAkB;;;ACDjC,SAAS,MACd,IACA,cAAsB,GACtB,WAAmB,KACnB,UAAkB,KACN;AACZ,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,OAAG,EACA,KAAK,OAAO,EACZ,MAAM,CAAC,UAAU;AAChB,UAAI,gBAAgB,GAAG;AACrB,eAAO,KAAK;AACZ;AAAA,MACF;AAEA,iBAAW,MAAM;AACf,cAAM,IAAI,cAAc,GAAG,WAAW,SAAS,OAAO,EACnD,KAAK,OAAO,EACZ,MAAM,MAAM;AAAA,MACjB,GAAG,QAAQ;AAAA,IACb,CAAC;AAAA,EACL,CAAC;AACH;;;ADAO,SAAS,sCACd,iBACA,mBACA,WAC6B;AAC7B,QAAM,EAAE,iBAAiB,IAAI,WAAW,cAAc;AAEtD,SAAO;AAAA,IACL,CAAO,aAAmC,gBAA6B;AACrE,YAAM,MAAM,MAAM,MAAM,MAAY;AAClC,cAAM,WAAoC;AAAA,UACxC;AAAA,YACE,MAAM;AAAA,YACN,SAAS,UAAU;AAAA,cACjB;AAAA,cACA,iBAAiB,iBAAiB;AAAA,YACpC;AAAA,UACF;AAAA,UACA,GAAG,UAAU;AAAA,UACb;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,QACF;AAEA,cAAM,SAAS,MAAM,UAAU,YAAY;AAAA,UACzC;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QACZ;AAGA,cAAM,SAAS,OAAO,UAAU;AAChC,YAAI,SAAS;AAEb,eAAO,MAAM;AACX,gBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,cAAI,MAAM;AACR;AAAA,UACF;AACA,oBAAU;AAAA,QACZ;AAEA,eAAO;AAAA,MACT,EAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,CAAC,WAAW,kBAAkB,mBAAmB,eAAe;AAAA,EAClE;AACF;","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,144 +1,5 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
-
22
- // src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx
23
- import { CopilotContext } from "@copilotkit/react-core";
24
- import { useCallback, useContext } from "react";
25
-
26
- // src/lib/retry.tsx
27
- function retry(fn, retriesLeft = 2, interval = 200, backoff = 1.5) {
28
- return new Promise((resolve, reject) => {
29
- fn().then(resolve).catch((error) => {
30
- if (retriesLeft === 1) {
31
- reject(error);
32
- return;
33
- }
34
- setTimeout(() => {
35
- retry(fn, retriesLeft - 1, interval * backoff, backoff).then(resolve).catch(reject);
36
- }, interval);
37
- });
38
- });
39
- }
40
-
41
- // src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx
42
- function useMakeStandardInsertionOrEditingFunction(textareaPurpose, contextCategories, insertionApiConfig, editingApiConfig) {
43
- const { getContextString } = useContext(CopilotContext);
44
- const insertionFunction = useCallback(
45
- (editorState, insertionPrompt, abortSignal) => __async(this, null, function* () {
46
- const res = yield retry(() => __async(this, null, function* () {
47
- const messages = [
48
- {
49
- role: "system",
50
- content: insertionApiConfig.makeSystemPrompt(
51
- textareaPurpose,
52
- getContextString(contextCategories)
53
- )
54
- },
55
- ...insertionApiConfig.fewShotMessages,
56
- {
57
- role: "user",
58
- name: "TextAfterCursor",
59
- content: editorState.textAfterCursor
60
- },
61
- {
62
- role: "user",
63
- name: "TextBeforeCursor",
64
- content: editorState.textBeforeCursor
65
- },
66
- {
67
- role: "user",
68
- name: "InsertionPrompt",
69
- content: insertionPrompt
70
- }
71
- ];
72
- return yield insertionApiConfig.apiEndpoint.run(
73
- abortSignal,
74
- messages,
75
- insertionApiConfig.forwardedParams
76
- );
77
- }));
78
- return res;
79
- }),
80
- [insertionApiConfig, getContextString, contextCategories, textareaPurpose]
81
- );
82
- const editingFunction = useCallback(
83
- (editorState, editingPrompt, abortSignal) => __async(this, null, function* () {
84
- const res = yield retry(() => __async(this, null, function* () {
85
- const messages = [
86
- {
87
- role: "system",
88
- content: editingApiConfig.makeSystemPrompt(
89
- textareaPurpose,
90
- getContextString(contextCategories)
91
- )
92
- },
93
- ...editingApiConfig.fewShotMessages,
94
- {
95
- role: "user",
96
- name: "TextBeforeCursor",
97
- content: editorState.textBeforeCursor
98
- },
99
- {
100
- role: "user",
101
- name: "TextToEdit",
102
- content: editorState.selectedText
103
- },
104
- {
105
- role: "user",
106
- name: "TextAfterCursor",
107
- content: editorState.textAfterCursor
108
- },
109
- {
110
- role: "user",
111
- name: "EditingPrompt",
112
- content: editingPrompt
113
- }
114
- ];
115
- return yield editingApiConfig.apiEndpoint.run(
116
- abortSignal,
117
- messages,
118
- editingApiConfig.forwardedParams
119
- );
120
- }));
121
- return res;
122
- }),
123
- [editingApiConfig, getContextString, contextCategories, textareaPurpose]
124
- );
125
- const insertionOrEditingFunction = useCallback(
126
- (editorState, insertionPrompt, abortSignal) => __async(this, null, function* () {
127
- if (editorState.selectedText === "") {
128
- return yield insertionFunction(
129
- editorState,
130
- insertionPrompt,
131
- abortSignal
132
- );
133
- } else {
134
- return yield editingFunction(editorState, insertionPrompt, abortSignal);
135
- }
136
- }),
137
- [insertionFunction, editingFunction]
138
- );
139
- return insertionOrEditingFunction;
140
- }
141
- export {
142
- useMakeStandardInsertionOrEditingFunction
143
- };
1
+ export { useMakeStandardInsertionOrEditingFunction } from '../../chunk-VBIJPE3H.mjs';
2
+ import '../../chunk-4S5ZJH3I.mjs';
3
+ import '../../chunk-MRXNTQOX.mjs';
4
+ //# sourceMappingURL=out.js.map
144
5
  //# sourceMappingURL=use-make-standard-insertion-function.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx","../../../src/lib/retry.tsx"],"sourcesContent":["import { CopilotContext } from \"@copilotkit/react-core\";\nimport { useCallback, useContext } from \"react\";\nimport { MinimalChatGPTMessage } from \"../../types\";\nimport { retry } from \"../../lib/retry\";\nimport {\n EditingEditorState,\n Generator_InsertionOrEditingSuggestion,\n InsertionEditorApiConfig,\n InsertionEditorState,\n} from \"../../types/base/autosuggestions-bare-function\";\nimport { InsertionsApiConfig } from \"../../types/autosuggestions-config/insertions-api-config\";\nimport { EditingApiConfig } from \"../../types/autosuggestions-config/editing-api-config\";\n\n/**\n * Returns a memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n * The function takes in the text before and after the cursor, and an abort signal.\n * It sends a POST request to the API endpoint with the messages array containing the system message, few shot messages, and user messages.\n * The function returns the suggestion from the API response.\n *\n * @param textareaPurpose - The purpose of the textarea. This is included in the system message.\n * @param apiEndpoint - The API endpoint to send the autosuggestion request to.\n * @param makeSystemMessage - A function that takes in a context string and returns a system message to include in the autosuggestion request.\n * @param fewShotMessages - An array of few shot messages to include in the autosuggestion request.\n * @param contextCategories - The categories of context strings we want to include. By default, we include the (default) \"global\" context category.\n * @returns A memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n */\nexport function useMakeStandardInsertionOrEditingFunction(\n textareaPurpose: string,\n contextCategories: string[] | undefined,\n insertionApiConfig: InsertionsApiConfig,\n editingApiConfig: EditingApiConfig\n): Generator_InsertionOrEditingSuggestion {\n const { getContextString } = useContext(CopilotContext);\n\n const insertionFunction = useCallback(\n async (\n editorState: EditingEditorState,\n insertionPrompt: string,\n abortSignal: AbortSignal\n ) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: insertionApiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString(contextCategories)\n ),\n },\n ...insertionApiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n {\n role: \"user\",\n name: \"InsertionPrompt\",\n content: insertionPrompt,\n },\n ];\n\n return await insertionApiConfig.apiEndpoint.run(\n abortSignal,\n messages,\n insertionApiConfig.forwardedParams\n );\n });\n\n return res;\n },\n [insertionApiConfig, getContextString, contextCategories, textareaPurpose]\n );\n\n const editingFunction = useCallback(\n async (\n editorState: EditingEditorState,\n editingPrompt: string,\n abortSignal: AbortSignal\n ) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: editingApiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString(contextCategories)\n ),\n },\n ...editingApiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n {\n role: \"user\",\n name: \"TextToEdit\",\n content: editorState.selectedText,\n },\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"EditingPrompt\",\n content: editingPrompt,\n },\n ];\n\n return await editingApiConfig.apiEndpoint.run(\n abortSignal,\n messages,\n editingApiConfig.forwardedParams\n );\n });\n\n return res;\n },\n [editingApiConfig, getContextString, contextCategories, textareaPurpose]\n );\n\n const insertionOrEditingFunction = useCallback(\n async (\n editorState: EditingEditorState,\n insertionPrompt: string,\n abortSignal: AbortSignal\n ) => {\n if (editorState.selectedText === \"\") {\n return await insertionFunction(\n editorState,\n insertionPrompt,\n abortSignal\n );\n } else {\n return await editingFunction(editorState, insertionPrompt, abortSignal);\n }\n },\n [insertionFunction, editingFunction]\n );\n\n return insertionOrEditingFunction;\n}\n","export function retry<T>(\n fn: () => Promise<T>,\n retriesLeft: number = 2,\n interval: number = 200,\n backoff: number = 1.5\n): Promise<T> {\n return new Promise((resolve, reject) => {\n fn()\n .then(resolve)\n .catch((error) => {\n if (retriesLeft === 1) {\n reject(error);\n return;\n }\n\n setTimeout(() => {\n retry(fn, retriesLeft - 1, interval * backoff, backoff)\n .then(resolve)\n .catch(reject);\n }, interval);\n });\n });\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,16 +1,4 @@
1
- // src/hooks/misc/use-autosize-textarea.tsx
2
- import { useEffect } from "react";
3
- var useAutosizeTextArea = (textAreaRef, value) => {
4
- useEffect(() => {
5
- if (textAreaRef.current !== null) {
6
- textAreaRef.current.style.height = "0px";
7
- const scrollHeight = textAreaRef.current.scrollHeight;
8
- textAreaRef.current.style.height = scrollHeight + "px";
9
- }
10
- }, [textAreaRef, value]);
11
- };
12
- var use_autosize_textarea_default = useAutosizeTextArea;
13
- export {
14
- use_autosize_textarea_default as default
15
- };
1
+ export { use_autosize_textarea_default as default } from '../../chunk-ND5PXTAW.mjs';
2
+ import '../../chunk-MRXNTQOX.mjs';
3
+ //# sourceMappingURL=out.js.map
16
4
  //# sourceMappingURL=use-autosize-textarea.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/misc/use-autosize-textarea.tsx"],"sourcesContent":["import { Ref, RefObject, useEffect } from \"react\";\n\n// Updates the height of a <textarea> when the value changes.\nconst useAutosizeTextArea = (\n textAreaRef: RefObject<HTMLTextAreaElement>,\n value: string\n) => {\n useEffect(() => {\n if (textAreaRef.current !== null) {\n // We need to reset the height momentarily to get the correct scrollHeight for the textarea\n textAreaRef.current.style.height = \"0px\";\n const scrollHeight = textAreaRef.current.scrollHeight;\n\n // We then set the height directly, outside of the render loop\n // Trying to set this with state or a ref will product an incorrect value.\n textAreaRef.current.style.height = scrollHeight + \"px\";\n }\n }, [textAreaRef, value]);\n};\n\nexport default useAutosizeTextArea;\n"],"mappings":";AAAA,SAAyB,iBAAiB;AAG1C,IAAM,sBAAsB,CAC1B,aACA,UACG;AACH,YAAU,MAAM;AACd,QAAI,YAAY,YAAY,MAAM;AAEhC,kBAAY,QAAQ,MAAM,SAAS;AACnC,YAAM,eAAe,YAAY,QAAQ;AAIzC,kBAAY,QAAQ,MAAM,SAAS,eAAe;AAAA,IACpD;AAAA,EACF,GAAG,CAAC,aAAa,KAAK,CAAC;AACzB;AAEA,IAAO,gCAAQ;","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}