@worktango/ai-assistant 0.0.70 → 0.0.71-beta03

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 (177) hide show
  1. package/constants.js +68 -0
  2. package/dist/{Absenteeism-B8zHBQI5.mjs → Absenteeism-D-NJ1353.mjs} +1 -1
  3. package/dist/{ActivityFeed-ymxaqCIv.mjs → ActivityFeed-Cd8ktc_-.mjs} +1 -1
  4. package/dist/{AddUser-Cz-3AWM0.mjs → AddUser-Ccl1BXwQ.mjs} +1 -1
  5. package/dist/{Admin-CrO303UM.mjs → Admin-B9pcuBaT.mjs} +1 -1
  6. package/dist/{Admin-B9Iinp76.mjs → Admin-CnzypHsA.mjs} +1 -1
  7. package/dist/{AiGeneral-qv_QrnA6.mjs → AiGeneral-Bw9RoWZ6.mjs} +1 -1
  8. package/dist/{AiScoring-Dy2ipnuV.mjs → AiScoring-QIoRefj9.mjs} +1 -1
  9. package/dist/{AiText-B0xHjF-V.mjs → AiText-B1UC1m8K.mjs} +1 -1
  10. package/dist/{Anniversary-1jZnrCDW.mjs → Anniversary-DvbX_bx7.mjs} +1 -1
  11. package/dist/{Appreciation-BaznLvd5.mjs → Appreciation-DU_NAp8H.mjs} +1 -1
  12. package/dist/{ArrowDown-BxrC5ODj.mjs → ArrowDown-DNjyTjFX.mjs} +1 -1
  13. package/dist/{ArrowLeft-Cjz4Cgsr.mjs → ArrowLeft-8tqaRKjJ.mjs} +1 -1
  14. package/dist/{ArrowRight-CF2rgRUN.mjs → ArrowRight-DPDgp90N.mjs} +1 -1
  15. package/dist/{ArrowUp-CEFJoYak.mjs → ArrowUp-bxZPamVM.mjs} +1 -1
  16. package/dist/{Attachment-9GmnfEF0.mjs → Attachment-WgP-j__9.mjs} +1 -1
  17. package/dist/{BeQuickDontHurry-IfrBbrMf.mjs → BeQuickDontHurry-D81UeeMs.mjs} +1 -1
  18. package/dist/{Birthday-DOvQr-FQ.mjs → Birthday-B-hHC1VG.mjs} +1 -1
  19. package/dist/{BrandPromise-BS5uJSIk.mjs → BrandPromise-5zf9QpFg.mjs} +1 -1
  20. package/dist/{BrandVision-DeJilePq.mjs → BrandVision-BhMwiRoO.mjs} +1 -1
  21. package/dist/{Calendar-Cq75DDuR.mjs → Calendar-BvMaydXt.mjs} +1 -1
  22. package/dist/{CaretDn-tMXT42G8.mjs → CaretDn-B9UMZCep.mjs} +1 -1
  23. package/dist/{CaretDown-CpI-XkVq.mjs → CaretDown-DrSo49AV.mjs} +1 -1
  24. package/dist/{CaretLeft-BFn3WQ5K.mjs → CaretLeft-Mz2F7nBO.mjs} +1 -1
  25. package/dist/{CaretRight-CIdV0Z8Y.mjs → CaretRight-DtC_you6.mjs} +1 -1
  26. package/dist/{CaretUp-DP0pwL60.mjs → CaretUp-G3gSdlUH.mjs} +1 -1
  27. package/dist/{ChallengeAccepted-Cv8fwv5E.mjs → ChallengeAccepted-DGqYhXC_.mjs} +1 -1
  28. package/dist/{CheckIn-Dj5EhH9q.mjs → CheckIn-rUFkrlMS.mjs} +1 -1
  29. package/dist/{CheckIns-AjMXWzX6.mjs → CheckIns-DB8wNWf4.mjs} +1 -1
  30. package/dist/{CheckSeal-CP0qxJlq.mjs → CheckSeal-DbCLWAqE.mjs} +1 -1
  31. package/dist/{Checkmark-zn-qgNjF.mjs → Checkmark-Buoh643G.mjs} +1 -1
  32. package/dist/{Clock-Ct821I-s.mjs → Clock-DXbi9Fb6.mjs} +1 -1
  33. package/dist/{Close-Bw5snNmh.mjs → Close-Bi5bc8yy.mjs} +1 -1
  34. package/dist/{CloudDownload-C8-lqjMV.mjs → CloudDownload-DrZ1DznB.mjs} +1 -1
  35. package/dist/{Comment-B08PRIoq.mjs → Comment-Bq_D2eJn.mjs} +1 -1
  36. package/dist/{Comments-Bm1eaDrF.mjs → Comments-DpnJZIUk.mjs} +1 -1
  37. package/dist/{Connections-Bb0l2JR_.mjs → Connections-C_mUcBwQ.mjs} +1 -1
  38. package/dist/{Copy-Dc2BFZGF.mjs → Copy-BMmx0zzK.mjs} +1 -1
  39. package/dist/{CustomQuestion-DgGI36d6.mjs → CustomQuestion-BQb8f88R.mjs} +1 -1
  40. package/dist/{CustomerSuccess-DY1wvAOd.mjs → CustomerSuccess-D1g4628Z.mjs} +1 -1
  41. package/dist/{DatePicker-BN4v7etH.mjs → DatePicker-Css2qCVW.mjs} +1 -1
  42. package/dist/{Dot-C9mcrGjb.mjs → Dot-Bgh7mGUJ.mjs} +1 -1
  43. package/dist/{Download-BPhht08q.mjs → Download-DEW61WhO.mjs} +1 -1
  44. package/dist/{Drag-BrdZoy8t.mjs → Drag-CdgPo259.mjs} +1 -1
  45. package/dist/{Earn-BK58KEOv.mjs → Earn-C_5iS7t-.mjs} +1 -1
  46. package/dist/{Email-DR-ChS3X.mjs → Email-DqWojnM0.mjs} +1 -1
  47. package/dist/{EmojiDisplay-CvJ56ohC.mjs → EmojiDisplay-Czb2wjJN.mjs} +2 -2
  48. package/dist/{EmojiPicker-DC83KBGY.mjs → EmojiPicker-Bpi4xlJ4.mjs} +2 -2
  49. package/dist/{EnpsSurvey-DOqNdx-u.mjs → EnpsSurvey-CNyKsO-s.mjs} +1 -1
  50. package/dist/{Expired-BfCs2U59.mjs → Expired-DOPPOv3X.mjs} +1 -1
  51. package/dist/{Eye-VKRhZcqg.mjs → Eye-BIDGX-hi.mjs} +1 -1
  52. package/dist/{Feedback-BQr-nYeS.mjs → Feedback-BDQt3ncv.mjs} +1 -1
  53. package/dist/{Feedback-CCa50G9c.mjs → Feedback-BM77TH9I.mjs} +1 -1
  54. package/dist/{Filter-D8nEMEM9.mjs → Filter-BGdcQkv7.mjs} +1 -1
  55. package/dist/{Flag-CW6CB9KV.mjs → Flag-BVvdJ7vp.mjs} +1 -1
  56. package/dist/{Giphy-CczeO5zL.mjs → Giphy-w3CH39ze.mjs} +1 -1
  57. package/dist/{GoalCount-Djy0ofWi.mjs → GoalCount-CGA1A89b.mjs} +1 -1
  58. package/dist/{GoalPercent-tcPWsVn-.mjs → GoalPercent-vvXq9tzm.mjs} +1 -1
  59. package/dist/{GoalTask-DiAFlw3C.mjs → GoalTask-BfAt9iXu.mjs} +1 -1
  60. package/dist/{GoalTask-qTcMWoK-.mjs → GoalTask-MCpJhyWB.mjs} +1 -1
  61. package/dist/{Goals-S4npZQfJ.mjs → Goals-Cpi6v5vX.mjs} +1 -1
  62. package/dist/{Goals-gWkc4Bcm.mjs → Goals-DdFDX7ej.mjs} +1 -1
  63. package/dist/{Growth-DGWneydC.mjs → Growth-DODOMbMz.mjs} +1 -1
  64. package/dist/{Hamburger-BZugx4Rf.mjs → Hamburger-DKmXFSgr.mjs} +1 -1
  65. package/dist/{Help-DB5iBJ1i.mjs → Help-r4_d_dYA.mjs} +1 -1
  66. package/dist/{HighFive-C5Qoq4xY.mjs → HighFive--Azh-lG4.mjs} +1 -1
  67. package/dist/{HighFive-EHavycEb.mjs → HighFive-CRBkEhzj.mjs} +1 -1
  68. package/dist/{Home-DWhphorr.mjs → Home-BRx6-lVV.mjs} +1 -1
  69. package/dist/{Home-ePCKRnN6.mjs → Home-D4mYeRqM.mjs} +1 -1
  70. package/dist/{HorizontalLine-DvqM1uMH.mjs → HorizontalLine-CUPxhl4B.mjs} +1 -1
  71. package/dist/{Hourglass-DN9jP4b4.mjs → Hourglass-oYYVLqEg.mjs} +1 -1
  72. package/dist/{Image-C-D1I9-B.mjs → Image-CaB5NrdV.mjs} +1 -1
  73. package/dist/{ImageFile-BkttvKgI.mjs → ImageFile-DYR9graO.mjs} +1 -1
  74. package/dist/{InGoodCompany-BdHhVppn.mjs → InGoodCompany-B5Qmmc7I.mjs} +1 -1
  75. package/dist/{Incentives-CMgZ1qFl.mjs → Incentives-CVqZin1A.mjs} +1 -1
  76. package/dist/{Info-Bg5sPUR4.mjs → Info-D4aR37OQ.mjs} +1 -1
  77. package/dist/{Insights-IVWtNh5U.mjs → Insights-dU2-Cxd5.mjs} +1 -1
  78. package/dist/{Insights-BxPBWl5D.mjs → Insights-gTnVAWQW.mjs} +1 -1
  79. package/dist/{Integrations-0FlSCDjv.mjs → Integrations-BDHKu9XZ.mjs} +1 -1
  80. package/dist/{KazooLogo-Dv8fjSMu.mjs → KazooLogo-D4rx3-h0.mjs} +1 -1
  81. package/dist/{KnowYourAudience-BHcVkz4b.mjs → KnowYourAudience-B-q5WZ33.mjs} +1 -1
  82. package/dist/{Launch-f8YkkgGu.mjs → Launch-WbUfruYt.mjs} +1 -1
  83. package/dist/{Link-DrrRMcdT.mjs → Link-47Y4ZfmR.mjs} +1 -1
  84. package/dist/{LinkArrow-BRnKCWtp.mjs → LinkArrow-BW_GYsOF.mjs} +1 -1
  85. package/dist/{Loading-DmrRW0dh.mjs → Loading-qFuqw6K1.mjs} +1 -1
  86. package/dist/{Lock-BDrNd3h4.mjs → Lock-BcRjNiaw.mjs} +1 -1
  87. package/dist/{Management-B1rYqhve.mjs → Management-MTReGw6e.mjs} +1 -1
  88. package/dist/{MeatballMenu-CbPK_R6k.mjs → MeatballMenu-C4oMtFYw.mjs} +1 -1
  89. package/dist/{Messages-CMqnLSc1.mjs → Messages-DZyiS2Q3.mjs} +1 -1
  90. package/dist/{Microphone-s5acy5gE.mjs → Microphone-BMhqMABS.mjs} +1 -1
  91. package/dist/{Mobile-Bkcb2paD.mjs → Mobile-DZlIWPab.mjs} +1 -1
  92. package/dist/{Nomination-B8as8Hrv.mjs → Nomination-CGOUKXKW.mjs} +1 -1
  93. package/dist/{NominationsAndAwards-Du9O5oHU.mjs → NominationsAndAwards-CtWUNgKo.mjs} +1 -1
  94. package/dist/{Notification-CxkvzFhn.mjs → Notification-D6kj3J66.mjs} +1 -1
  95. package/dist/{Okrs-GVi5lA8U.mjs → Okrs-CUYHsyFh.mjs} +1 -1
  96. package/dist/{PeerToPeer-ClFbM4s9.mjs → PeerToPeer-CwysyPOe.mjs} +1 -1
  97. package/dist/{Pencil-DAGjkGCX.mjs → Pencil-D1iUk88X.mjs} +1 -1
  98. package/dist/{People-BjIWvWVx.mjs → People-DsO73RJl.mjs} +1 -1
  99. package/dist/{PerformanceManagement-DLaF-Q37.mjs → PerformanceManagement-B0NGQV_n.mjs} +1 -1
  100. package/dist/{Pin-DpS93f33.mjs → Pin-Czdy441g.mjs} +1 -1
  101. package/dist/{PinnedIconAward-BZpW6dpf.mjs → PinnedIconAward-DAsKGAY-.mjs} +1 -1
  102. package/dist/{PinnedIconBrightIdea-PUFMYCc6.mjs → PinnedIconBrightIdea-BXEr5wUF.mjs} +1 -1
  103. package/dist/{PinnedIconBullseye-CH1V91R5.mjs → PinnedIconBullseye-BH4yW7Up.mjs} +1 -1
  104. package/dist/{PinnedIconChampagne-C5Qm1D9B.mjs → PinnedIconChampagne-Bhg5C9LT.mjs} +1 -1
  105. package/dist/{PinnedIconCheer-C4YallMe.mjs → PinnedIconCheer-BwSnLAw3.mjs} +1 -1
  106. package/dist/{PinnedIconCrown-D0zO8C7D.mjs → PinnedIconCrown-7S7uOnaf.mjs} +1 -1
  107. package/dist/{PinnedIconDiamond-D48eEcGP.mjs → PinnedIconDiamond-Cod4FTe6.mjs} +1 -1
  108. package/dist/{PinnedIconHoleInOne-xffC7jth.mjs → PinnedIconHoleInOne-CbM8ROV9.mjs} +1 -1
  109. package/dist/{PinnedIconMedal-TV7JAtAM.mjs → PinnedIconMedal-B-CtkhuW.mjs} +1 -1
  110. package/dist/{PinnedIconMetrics-CQ8dTBZu.mjs → PinnedIconMetrics-CwP9sdO2.mjs} +1 -1
  111. package/dist/{PinnedIconPin-NFhWkZEb.mjs → PinnedIconPin-BkpOyskn.mjs} +1 -1
  112. package/dist/{PinnedIconRockAndRoll-B3H0P1n0.mjs → PinnedIconRockAndRoll-CffT2u02.mjs} +1 -1
  113. package/dist/{PinnedIconRocket-C3jKXT9I.mjs → PinnedIconRocket-Cswt_coU.mjs} +1 -1
  114. package/dist/{PinnedIconStrength-BdQGBncD.mjs → PinnedIconStrength-CVU7emj3.mjs} +1 -1
  115. package/dist/{PinnedIconTeddyBear-CQVP8YO5.mjs → PinnedIconTeddyBear-CwWDlFy0.mjs} +1 -1
  116. package/dist/{PlatformLogo-DV5zS4Ye.mjs → PlatformLogo-CFADin0J.mjs} +1 -1
  117. package/dist/{Plus-yJtUAonX.mjs → Plus-TVxX2QQe.mjs} +1 -1
  118. package/dist/{Popper-BHSspc5e.mjs → Popper-D2-RBf1L.mjs} +1 -1
  119. package/dist/{PrivateEye-BuLJvdJw.mjs → PrivateEye-MTKE3l-n.mjs} +1 -1
  120. package/dist/{PrivatePushPin-eWeLfa83.mjs → PrivatePushPin-Dsrh_mdD.mjs} +1 -1
  121. package/dist/{Processing-DBEMZiXd.mjs → Processing-ClnRs2Aq.mjs} +1 -1
  122. package/dist/{Productivity-BMBIScxs.mjs → Productivity-C6x4OfKj.mjs} +1 -1
  123. package/dist/{ProgressCircle-vYIWtKI8.mjs → ProgressCircle-BzfxcvZO.mjs} +1 -1
  124. package/dist/{PulseSurvey-CrDDd1na.mjs → PulseSurvey-GLgc0NJB.mjs} +1 -1
  125. package/dist/{PushPin-BGiHec4b.mjs → PushPin-CK2pO4aw.mjs} +1 -1
  126. package/dist/{Recognition-CtxrkE11.mjs → Recognition-BgOShUP9.mjs} +1 -1
  127. package/dist/{Recognition-DEXZW0FF.mjs → Recognition-Dgx6YDAx.mjs} +1 -1
  128. package/dist/{Retention-COwtOLUL.mjs → Retention-CaZfObhm.mjs} +1 -1
  129. package/dist/{Rewards-CHCxTgd4.mjs → Rewards-D1hbbero.mjs} +1 -1
  130. package/dist/{Rewards-CxOhbzrB.mjs → Rewards-DaYTDA1v.mjs} +1 -1
  131. package/dist/{RewardsCatalog-DDZX2DDj.mjs → RewardsCatalog-BDDmixOV.mjs} +1 -1
  132. package/dist/{Roadmap-DMNMXNwI.mjs → Roadmap-URW48KfH.mjs} +1 -1
  133. package/dist/{Search-BElyy7Rl.mjs → Search-DporUW8N.mjs} +1 -1
  134. package/dist/{Security-D3GxNOKD.mjs → Security-DA4tpQfC.mjs} +1 -1
  135. package/dist/{SendRecognition-B1a9_UpO.mjs → SendRecognition-CyL7hFeV.mjs} +1 -1
  136. package/dist/{ShareLink-BdYtUZNn.mjs → ShareLink-BpYoC49O.mjs} +1 -1
  137. package/dist/{Skill-BmYKwcDn.mjs → Skill-CDpO7gRc.mjs} +1 -1
  138. package/dist/{Skills-DYdAbUXK.mjs → Skills-B71CaSOC.mjs} +1 -1
  139. package/dist/{Smiley-CwKuzgNP.mjs → Smiley-GvfBjy08.mjs} +1 -1
  140. package/dist/{Stop-CuHdTX1F.mjs → Stop-DFVNTFNK.mjs} +1 -1
  141. package/dist/{Survey-B396ApRr.mjs → Survey-BJ78F6ZR.mjs} +1 -1
  142. package/dist/{Surveys-J-Ta5I0U.mjs → Surveys-oueVk-r6.mjs} +1 -1
  143. package/dist/{SyncUps-mJO7Wrr-.mjs → SyncUps-CMUQkfhP.mjs} +1 -1
  144. package/dist/{Syncs-oeaNrrde.mjs → Syncs-D2vJ5UWD.mjs} +1 -1
  145. package/dist/{TalentReview-BN4rVbfv.mjs → TalentReview-Ce9SxCaE.mjs} +1 -1
  146. package/dist/{TalentReview-LXvNicMb.mjs → TalentReview-CmPt9gOQ.mjs} +1 -1
  147. package/dist/{TalentReviewInsights-Bv8Zzq-J.mjs → TalentReviewInsights-B1rYGUYf.mjs} +1 -1
  148. package/dist/{TaskCompleted-DdrBZ9yH.mjs → TaskCompleted-rv_tFIOB.mjs} +1 -1
  149. package/dist/{Team-C9iNL3J1.mjs → Team-B1gh_9SZ.mjs} +1 -1
  150. package/dist/{Teams-DYHzL5bZ.mjs → Teams-Ca2Pe12u.mjs} +1 -1
  151. package/dist/{TextBold-Cazylaa4.mjs → TextBold-BUnNgs6k.mjs} +1 -1
  152. package/dist/{TextBulletList-C1ezA6Ml.mjs → TextBulletList-CXfjZ7SN.mjs} +1 -1
  153. package/dist/{TextInput-CaF2XDDZ.mjs → TextInput-Ga0rCofn.mjs} +1 -1
  154. package/dist/{TextItalic-BYHbGBMu.mjs → TextItalic-J-cwwewZ.mjs} +1 -1
  155. package/dist/{TextNumberList-BdHO8PNW.mjs → TextNumberList-DSRl24aA.mjs} +1 -1
  156. package/dist/{TextUnderline-Do3EiIWM.mjs → TextUnderline-BqwuWlUs.mjs} +1 -1
  157. package/dist/{Toggle-CQ4KEjZD.mjs → Toggle-CAii9WRp.mjs} +1 -1
  158. package/dist/{Translate-BcWgbOeZ.mjs → Translate-TDNOHs0V.mjs} +1 -1
  159. package/dist/{Trash-C5P05R3V.mjs → Trash-BRDS6XM5.mjs} +1 -1
  160. package/dist/{TrendDown-Cl5XOgpt.mjs → TrendDown-BV8rTMdD.mjs} +1 -1
  161. package/dist/{TrendUp-A_s2nsIk.mjs → TrendUp-BjOB4qDf.mjs} +1 -1
  162. package/dist/{Undo-CtulXEwQ.mjs → Undo-CUjhndtp.mjs} +1 -1
  163. package/dist/{Unplugged-C8YyBtd1.mjs → Unplugged-BW6y33fH.mjs} +1 -1
  164. package/dist/{UpDownCaret-C_JAPTni.mjs → UpDownCaret-Cg8w02Wx.mjs} +1 -1
  165. package/dist/{VerticalLine-B5C_K49a.mjs → VerticalLine-DmX5Ebs6.mjs} +1 -1
  166. package/dist/{Warning-B7zBN1qk.mjs → Warning-DDEJLxG0.mjs} +1 -1
  167. package/dist/{WarningNoOutline-CgfKfOVF.mjs → WarningNoOutline-CORgMBKr.mjs} +1 -1
  168. package/dist/{YesAnd-BdUhex42.mjs → YesAnd-BWDkHsgz.mjs} +1 -1
  169. package/dist/ai-assistant.css +1 -1
  170. package/dist/{emoji-BmhMw4Ak.mjs → emoji-udOcu5dg.mjs} +1 -1
  171. package/dist/{react-apexcharts.min-BWVor6_A.mjs → react-apexcharts.min-CvWhHZdl.mjs} +1 -1
  172. package/dist/react.es.js +5 -4
  173. package/dist/react.umd.js +334 -334
  174. package/dist/{reactComponent-BaYgrUle.mjs → reactComponent-DLCoQXkU.mjs} +4835 -4686
  175. package/package.json +4 -2
  176. package/react.d.ts +5 -0
  177. package/sharedTypes.ts +200 -0
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@worktango/ai-assistant",
3
- "version": "0.0.70",
3
+ "version": "0.0.71-beta03",
4
4
  "files": [
5
+ "constants.js",
5
6
  "dist",
6
7
  "express.d.ts",
7
8
  "express.js",
8
9
  "react.d.ts",
9
- "react.js"
10
+ "react.js",
11
+ "sharedTypes.ts"
10
12
  ],
11
13
  "scripts": {
12
14
  "dev": "vite --config vite.config.ts src/dev",
package/react.d.ts CHANGED
@@ -6,10 +6,15 @@ import {
6
6
  GetChatCompletionOptions,
7
7
  GetStructuredResponseOptions,
8
8
  ToolDeclaration,
9
+ AiAssistantSuggestedPromptsProps,
9
10
  } from "./sharedTypes";
10
11
 
11
12
  export function AiAssistant(args: AiAssistantProps): JSX.Element;
12
13
 
14
+ export function AiAssistantSuggestedPrompts(
15
+ args: AiAssistantSuggestedPromptsProps
16
+ ): JSX.Element;
17
+
13
18
  export const tools: {
14
19
  kazooTools: {
15
20
  getRewardsAndRecognitionCurrentUserTool: ToolDeclaration;
package/sharedTypes.ts ADDED
@@ -0,0 +1,200 @@
1
+ import type { TSchema, Type } from "@sinclair/typebox";
2
+
3
+ export type AiAssistantSuggestedPromptsProps = {
4
+ suggestedPrompts: Record<string, AiAssistantSuggestedPrompt[]>;
5
+ onSelect: (prompt: AiAssistantSuggestedPrompt) => void | Promise<void>;
6
+ includeGlobalPrompts?: boolean;
7
+ };
8
+
9
+ export type AiAssistantSuggestedPrompt = {
10
+ title: string;
11
+ fullPrompt?: string;
12
+ };
13
+
14
+ export type SupportedTextModel = "small" | "medium" | "large";
15
+
16
+ export type ChatItem = {
17
+ role: "user" | "model" | "tool";
18
+ parts: ChatData[];
19
+ };
20
+
21
+ export type ToolDeclaration<TParams extends TSchema = TSchema> = {
22
+ name: string;
23
+ description: string;
24
+ parameters?: any;
25
+ chatItemMatches?: (chatItem: {
26
+ role: "user" | "model" | "tool";
27
+ parts: ChatData[];
28
+ }) => boolean;
29
+ fulfill: (result: TParams) => Promise<string | ChatDataFile>;
30
+ };
31
+
32
+ export type ChatData =
33
+ | ChatDataText
34
+ | ChatDataToolCall
35
+ | ChatDataToolResult
36
+ | ChatDataFile;
37
+
38
+ export type ChatDataText = { type: "text"; text: string };
39
+
40
+ export type ChatDataFile = {
41
+ type: "file";
42
+ fileUri: string;
43
+ mimeType: string;
44
+ };
45
+
46
+ export type ChatDataToolCall = {
47
+ type: "toolCall";
48
+ toolName: string;
49
+ args: Record<string, unknown>;
50
+ };
51
+
52
+ export type ChatDataToolResult = {
53
+ type: "toolResult";
54
+ toolName: string;
55
+ result: any;
56
+ };
57
+
58
+ export type ChatHistoryItem = {
59
+ title: string;
60
+ messages: any[];
61
+ [key: string]: any;
62
+ };
63
+
64
+ export type ChatHistory = Record<string, ChatHistoryItem[]>;
65
+
66
+ export type ChatSizes = "small" | "default" | "large" | "full";
67
+
68
+ export type AiAssistantControls = {
69
+ /**
70
+ * Set the prompt to use for the AI assistant.
71
+ * @param prompt - The prompt to set.
72
+ * @param submit - Whether to submit the prompt to the AI assistant once the new prompt is set.
73
+ */
74
+ setPrompt?: (prompt: string, submit?: boolean) => void;
75
+ };
76
+
77
+ export type AiAssistantProps = {
78
+ /**
79
+ * The title to display in the window. Default: "WorkTango AI Assistant".
80
+ */
81
+ windowTitle?: React.ReactNode;
82
+ /**
83
+ * The full suite of tools to use for the AI assistant.
84
+ */
85
+ tools?: ToolDeclaration<any>[];
86
+ /**
87
+ * Whether to enable debug mode. Default: false.
88
+ */
89
+ enableDebug?: boolean;
90
+ /**
91
+ * The function to call when the AI assistant is closed.
92
+ */
93
+ onClose: () => void;
94
+ /**
95
+ * The function to call when the AI assistant receives a text reply from the LLM.
96
+ * Is invoked with the entire chat history, including the new message.
97
+ */
98
+ onLlmTextReply?: (chatHistory: ChatItem[]) => void;
99
+ /**
100
+ * Whether to show a close button in the chat window. Default: true.
101
+ */
102
+ hasCloseButton?: boolean;
103
+ /**
104
+ * The zero state to display when the chat window is empty.
105
+ */
106
+ chatWindowZeroState?: React.ReactNode;
107
+ /**
108
+ * Whether to show a button to toggle the chat size. Default: true.
109
+ */
110
+ hasToggleChatSizeButton?: boolean;
111
+ /**
112
+ * If true, the chat history (list of past conversations) will be shown, by default
113
+ */
114
+ hasChatHistory?: boolean;
115
+ /**
116
+ * The initial width of the chat window. Default: "default".
117
+ */
118
+ startingWidth?: ChatSizes;
119
+ /**
120
+ * The system instruction to use for the AI assistant.
121
+ */
122
+ systemInstruction?: () => string | Promise<string>;
123
+ /**
124
+ * The initial prompt to use for the AI assistant.
125
+ */
126
+ initialPrompt?: string;
127
+ /**
128
+ * A ref to the controls object for the AI assistant. Used to allow some form
129
+ * of control over the AI assistant from outside the component, allowing things
130
+ * like recommended prompts to be set from outside the component.
131
+ */
132
+ controls?: React.MutableRefObject<AiAssistantControls>;
133
+ /**
134
+ * Whether to show the chat history by default. Default: true.
135
+ */
136
+ chatHistoryShownByDefault?: boolean;
137
+ /**
138
+ * Otherwise, if there's a chat history, we start with the latest history, so
139
+ * the user can continue the previous conversation.
140
+ */
141
+ startWithNewChat?: boolean;
142
+ /**
143
+ * The minimum number of characters that must be entered before the user can
144
+ * submit a message. Default: 5.
145
+ */
146
+ minimumCharacterCount?: number;
147
+ /**
148
+ * FollowUpSuggestions
149
+ */
150
+ followUpSuggestions?: FollowUpSuggestion[];
151
+ };
152
+
153
+ export type FollowUpSuggestion = {
154
+ /**
155
+ * A unique identifier for the follow-up suggestion. This will be used to keep user-level state for dismissed items.
156
+ */
157
+ id: string;
158
+ /**
159
+ * The title of the follow-up suggestion. This will be displayed in the UI as a pill button, so keep it short.
160
+ */
161
+ title: string;
162
+ /**
163
+ * The function to call when the follow-up suggestion is clicked.
164
+ */
165
+ onClick: () => void;
166
+ };
167
+
168
+ export interface Conversation {
169
+ id: string;
170
+ title: string;
171
+ updatedAt: Date;
172
+ messages: {
173
+ conversationId: string;
174
+ id: string;
175
+ messageText: string;
176
+ role: string;
177
+ }[];
178
+ }
179
+
180
+ export type GetStructuredResponseOptions<T extends TSchema> = {
181
+ requestBody: {
182
+ model: SupportedTextModel | undefined;
183
+ temperature: number | undefined;
184
+ prompt: string;
185
+ schema: (t: typeof Type) => T;
186
+ };
187
+ };
188
+
189
+ export type GetChatCompletionOptions = {
190
+ requestBody: {
191
+ model: SupportedTextModel | undefined;
192
+ temperature: number | undefined;
193
+ stream: boolean;
194
+ messages: ChatItem[];
195
+ tools?: ToolDeclaration[] | undefined;
196
+ };
197
+ onChunk?: (chunk: ChatData) => void;
198
+ onError?: (error: Error) => void;
199
+ onComplete?: () => void;
200
+ };