@burdenoff/microfe-botmanor 2026.1108.1 → 2026.1109.2

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 (335) hide show
  1. package/dist/botlit/BotlitRoutes.d.ts +2 -0
  2. package/dist/botlit/BotlitRoutes.js +40 -52
  3. package/dist/botlit/BotlitRoutes.js.map +1 -1
  4. package/dist/botlit/BotmanorRoot.d.ts +3 -0
  5. package/dist/botlit/BotmanorRoot.js +1 -2
  6. package/dist/botlit/BotmanorRoot.js.map +1 -1
  7. package/dist/botlit/BotmanorRootInner.d.ts +3 -0
  8. package/dist/botlit/BotmanorRootInner.js +9 -10
  9. package/dist/botlit/BotmanorRootInner.js.map +1 -1
  10. package/dist/botlit/components/AgentApprovalPanel.d.ts +20 -0
  11. package/dist/botlit/components/AgentApprovalPanel.js +49 -50
  12. package/dist/botlit/components/AgentApprovalPanel.js.map +1 -1
  13. package/dist/botlit/components/AiOperationsPanel.d.ts +14 -0
  14. package/dist/botlit/components/AiOperationsPanel.js +54 -55
  15. package/dist/botlit/components/AiOperationsPanel.js.map +1 -1
  16. package/dist/botlit/components/AssistantChannelPanel.d.ts +3 -0
  17. package/dist/botlit/components/AssistantChannelPanel.js +12 -13
  18. package/dist/botlit/components/AssistantChannelPanel.js.map +1 -1
  19. package/dist/botlit/components/AssistantRuntimeSetupPanel.d.ts +4 -0
  20. package/dist/botlit/components/AssistantRuntimeSetupPanel.js +14 -14
  21. package/dist/botlit/components/AssistantRuntimeSetupPanel.js.map +1 -1
  22. package/dist/botlit/components/AssistantWebsitePanel.d.ts +5 -0
  23. package/dist/botlit/components/AssistantWebsitePanel.js +15 -16
  24. package/dist/botlit/components/AssistantWebsitePanel.js.map +1 -1
  25. package/dist/botlit/components/Badge.d.ts +9 -0
  26. package/dist/botlit/components/Badge.js +1 -2
  27. package/dist/botlit/components/Badge.js.map +1 -1
  28. package/dist/botlit/components/Button.d.ts +10 -0
  29. package/dist/botlit/components/Button.js +1 -2
  30. package/dist/botlit/components/Button.js.map +1 -1
  31. package/dist/botlit/components/Card.d.ts +16 -0
  32. package/dist/botlit/components/Card.js +1 -2
  33. package/dist/botlit/components/Card.js.map +1 -1
  34. package/dist/botlit/components/ChannelSelectorSheet.d.ts +23 -0
  35. package/dist/botlit/components/ChannelSelectorSheet.js +1 -2
  36. package/dist/botlit/components/ChannelSelectorSheet.js.map +1 -1
  37. package/dist/botlit/components/EmptyState.d.ts +12 -0
  38. package/dist/botlit/components/EmptyState.js +1 -2
  39. package/dist/botlit/components/EmptyState.js.map +1 -1
  40. package/dist/botlit/components/ErrorState.d.ts +10 -0
  41. package/dist/botlit/components/ErrorState.js +5 -6
  42. package/dist/botlit/components/ErrorState.js.map +1 -1
  43. package/dist/botlit/components/Input.d.ts +27 -0
  44. package/dist/botlit/components/Input.js +1 -2
  45. package/dist/botlit/components/Input.js.map +1 -1
  46. package/dist/botlit/components/KnowledgeSourceImportPanel.d.ts +3 -0
  47. package/dist/botlit/components/KnowledgeSourceImportPanel.js +12 -13
  48. package/dist/botlit/components/KnowledgeSourceImportPanel.js.map +1 -1
  49. package/dist/botlit/components/ModelRegistrationPanel.d.ts +5 -0
  50. package/dist/botlit/components/ModelRegistrationPanel.js +1 -2
  51. package/dist/botlit/components/ModelRegistrationPanel.js.map +1 -1
  52. package/dist/botlit/components/PageLayout.d.ts +12 -0
  53. package/dist/botlit/components/PageLayout.js +1 -2
  54. package/dist/botlit/components/PageLayout.js.map +1 -1
  55. package/dist/botlit/components/QuotaExhaustedDialog.d.ts +9 -0
  56. package/dist/botlit/components/QuotaExhaustedDialog.js +1 -2
  57. package/dist/botlit/components/QuotaExhaustedDialog.js.map +1 -1
  58. package/dist/botlit/components/RetentionStatusPanel.d.ts +2 -0
  59. package/dist/botlit/components/RetentionStatusPanel.js +18 -19
  60. package/dist/botlit/components/RetentionStatusPanel.js.map +1 -1
  61. package/dist/botlit/components/RouteLoader.d.ts +23 -0
  62. package/dist/botlit/components/RouteLoader.js +1 -2
  63. package/dist/botlit/components/RouteLoader.js.map +1 -1
  64. package/dist/botlit/components/VersionHistoryPanel.d.ts +12 -0
  65. package/dist/botlit/components/VersionHistoryPanel.js +23 -24
  66. package/dist/botlit/components/VersionHistoryPanel.js.map +1 -1
  67. package/dist/botlit/components/WorkspaceRequired.d.ts +18 -0
  68. package/dist/botlit/components/WorkspaceRequired.js +1 -2
  69. package/dist/botlit/components/WorkspaceRequired.js.map +1 -1
  70. package/dist/botlit/components/index.d.ts +14 -0
  71. package/dist/botlit/hooks/index.d.ts +35 -0
  72. package/dist/botlit/hooks/index.js +16 -16
  73. package/dist/botlit/hooks/internal/mutationInput.d.ts +56 -0
  74. package/dist/botlit/hooks/internal/mutationInput.js +1 -2
  75. package/dist/botlit/hooks/internal/mutationInput.js.map +1 -1
  76. package/dist/botlit/hooks/internal/workspaceGateway.d.ts +54 -0
  77. package/dist/botlit/hooks/internal/workspaceGateway.js +17 -19
  78. package/dist/botlit/hooks/internal/workspaceGateway.js.map +1 -1
  79. package/dist/botlit/hooks/useA2A.d.ts +104 -0
  80. package/dist/botlit/hooks/useA2A.js +45 -45
  81. package/dist/botlit/hooks/useA2A.js.map +1 -1
  82. package/dist/botlit/hooks/useAgentApprovals.d.ts +62 -0
  83. package/dist/botlit/hooks/useAgentApprovals.js +38 -39
  84. package/dist/botlit/hooks/useAgentApprovals.js.map +1 -1
  85. package/dist/botlit/hooks/useAgents.d.ts +105 -0
  86. package/dist/botlit/hooks/useAgents.js +53 -54
  87. package/dist/botlit/hooks/useAgents.js.map +1 -1
  88. package/dist/botlit/hooks/useAiOperations.d.ts +95 -0
  89. package/dist/botlit/hooks/useAiOperations.js +20 -19
  90. package/dist/botlit/hooks/useAiOperations.js.map +1 -1
  91. package/dist/botlit/hooks/useAssistantChannels.d.ts +16 -0
  92. package/dist/botlit/hooks/useAssistantChannels.js +1 -2
  93. package/dist/botlit/hooks/useAssistantChannels.js.map +1 -1
  94. package/dist/botlit/hooks/useAssistantRuntimeSetup.d.ts +17 -0
  95. package/dist/botlit/hooks/useAssistantRuntimeSetup.js +1 -2
  96. package/dist/botlit/hooks/useAssistantRuntimeSetup.js.map +1 -1
  97. package/dist/botlit/hooks/useAssistantWebsites.d.ts +18 -0
  98. package/dist/botlit/hooks/useAssistantWebsites.js +1 -2
  99. package/dist/botlit/hooks/useAssistantWebsites.js.map +1 -1
  100. package/dist/botlit/hooks/useBotWorkflow.d.ts +22 -0
  101. package/dist/botlit/hooks/useBotWorkflow.js +1 -2
  102. package/dist/botlit/hooks/useBotWorkflow.js.map +1 -1
  103. package/dist/botlit/hooks/useBots.d.ts +68 -0
  104. package/dist/botlit/hooks/useBots.js +32 -33
  105. package/dist/botlit/hooks/useBots.js.map +1 -1
  106. package/dist/botlit/hooks/useBuckets.d.ts +62 -0
  107. package/dist/botlit/hooks/useBuckets.js +91 -58
  108. package/dist/botlit/hooks/useBuckets.js.map +1 -1
  109. package/dist/botlit/hooks/useChannels.d.ts +87 -0
  110. package/dist/botlit/hooks/useChannels.js +73 -73
  111. package/dist/botlit/hooks/useChannels.js.map +1 -1
  112. package/dist/botlit/hooks/useExecutions.d.ts +87 -0
  113. package/dist/botlit/hooks/useExecutions.js +37 -37
  114. package/dist/botlit/hooks/useExecutions.js.map +1 -1
  115. package/dist/botlit/hooks/useKnowledgeBases.d.ts +79 -0
  116. package/dist/botlit/hooks/useKnowledgeBases.js +40 -39
  117. package/dist/botlit/hooks/useKnowledgeBases.js.map +1 -1
  118. package/dist/botlit/hooks/useKnowledgeSourceImports.d.ts +21 -0
  119. package/dist/botlit/hooks/useKnowledgeSourceImports.js +1 -2
  120. package/dist/botlit/hooks/useKnowledgeSourceImports.js.map +1 -1
  121. package/dist/botlit/hooks/useLLMProviders.d.ts +66 -0
  122. package/dist/botlit/hooks/useLLMProviders.js +25 -26
  123. package/dist/botlit/hooks/useLLMProviders.js.map +1 -1
  124. package/dist/botlit/hooks/useMCPServers.d.ts +71 -0
  125. package/dist/botlit/hooks/useMCPServers.js +40 -38
  126. package/dist/botlit/hooks/useMCPServers.js.map +1 -1
  127. package/dist/botlit/hooks/usePolicies.d.ts +60 -0
  128. package/dist/botlit/hooks/usePolicies.js +49 -49
  129. package/dist/botlit/hooks/usePolicies.js.map +1 -1
  130. package/dist/botlit/hooks/usePromptTemplates.d.ts +88 -0
  131. package/dist/botlit/hooks/usePromptTemplates.js +57 -57
  132. package/dist/botlit/hooks/usePromptTemplates.js.map +1 -1
  133. package/dist/botlit/hooks/useRetention.d.ts +26 -0
  134. package/dist/botlit/hooks/useRetention.js +3 -3
  135. package/dist/botlit/hooks/useRetention.js.map +1 -1
  136. package/dist/botlit/hooks/useRetrievalProfiles.d.ts +75 -0
  137. package/dist/botlit/hooks/useRetrievalProfiles.js +47 -47
  138. package/dist/botlit/hooks/useRetrievalProfiles.js.map +1 -1
  139. package/dist/botlit/hooks/useSkills.d.ts +64 -0
  140. package/dist/botlit/hooks/useSkills.js +53 -53
  141. package/dist/botlit/hooks/useSkills.js.map +1 -1
  142. package/dist/botlit/hooks/useStore.d.ts +112 -0
  143. package/dist/botlit/hooks/useStore.js +55 -55
  144. package/dist/botlit/hooks/useStore.js.map +1 -1
  145. package/dist/botlit/hooks/useUserPlatformConnection.d.ts +80 -0
  146. package/dist/botlit/hooks/useUserPlatformConnection.js +19 -19
  147. package/dist/botlit/hooks/useUserPlatformConnection.js.map +1 -1
  148. package/dist/botlit/index.d.ts +15 -0
  149. package/dist/botlit/index.js +11 -11
  150. package/dist/botlit/pages/A2AAgentDetailPage.d.ts +6 -0
  151. package/dist/botlit/pages/A2AAgentDetailPage.js +171 -178
  152. package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
  153. package/dist/botlit/pages/A2ARegistryPage.d.ts +2 -0
  154. package/dist/botlit/pages/A2ARegistryPage.js +25 -26
  155. package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
  156. package/dist/botlit/pages/AgentApprovalsPage.d.ts +2 -0
  157. package/dist/botlit/pages/AgentApprovalsPage.js +32 -33
  158. package/dist/botlit/pages/AgentApprovalsPage.js.map +1 -1
  159. package/dist/botlit/pages/AgentBuilderPage.d.ts +2 -0
  160. package/dist/botlit/pages/AgentBuilderPage.js +59 -60
  161. package/dist/botlit/pages/AgentBuilderPage.js.map +1 -1
  162. package/dist/botlit/pages/AgentDetailPage.d.ts +2 -0
  163. package/dist/botlit/pages/AgentDetailPage.js +83 -84
  164. package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
  165. package/dist/botlit/pages/AgentsListPage.d.ts +2 -0
  166. package/dist/botlit/pages/AgentsListPage.js +71 -72
  167. package/dist/botlit/pages/AgentsListPage.js.map +1 -1
  168. package/dist/botlit/pages/AiOperationsPage.d.ts +2 -0
  169. package/dist/botlit/pages/AiOperationsPage.js +52 -53
  170. package/dist/botlit/pages/AiOperationsPage.js.map +1 -1
  171. package/dist/botlit/pages/BotChannelsTab.d.ts +7 -0
  172. package/dist/botlit/pages/BotChannelsTab.js +120 -122
  173. package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
  174. package/dist/botlit/pages/BotDetailPage.d.ts +7 -0
  175. package/dist/botlit/pages/BotDetailPage.js +353 -358
  176. package/dist/botlit/pages/BotDetailPage.js.map +1 -1
  177. package/dist/botlit/pages/BotWorkflowTab.d.ts +11 -0
  178. package/dist/botlit/pages/BotWorkflowTab.js +20 -21
  179. package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
  180. package/dist/botlit/pages/BotsListPage.d.ts +2 -0
  181. package/dist/botlit/pages/BotsListPage.js +52 -53
  182. package/dist/botlit/pages/BotsListPage.js.map +1 -1
  183. package/dist/botlit/pages/BucketDetailPage.d.ts +2 -0
  184. package/dist/botlit/pages/BucketDetailPage.js +251 -0
  185. package/dist/botlit/pages/BucketDetailPage.js.map +1 -0
  186. package/dist/botlit/pages/BucketsPage.d.ts +2 -0
  187. package/dist/botlit/pages/BucketsPage.js +260 -261
  188. package/dist/botlit/pages/BucketsPage.js.map +1 -1
  189. package/dist/botlit/pages/ChannelDetailPage.d.ts +6 -0
  190. package/dist/botlit/pages/ChannelDetailPage.js +97 -96
  191. package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
  192. package/dist/botlit/pages/ChannelRoutesPage.d.ts +2 -0
  193. package/dist/botlit/pages/ChannelRoutesPage.js +23 -24
  194. package/dist/botlit/pages/ChannelRoutesPage.js.map +1 -1
  195. package/dist/botlit/pages/ChannelsPage.d.ts +2 -0
  196. package/dist/botlit/pages/ChannelsPage.js +44 -45
  197. package/dist/botlit/pages/ChannelsPage.js.map +1 -1
  198. package/dist/botlit/pages/ChatPage.d.ts +1 -0
  199. package/dist/botlit/pages/ChatPage.js +10 -11
  200. package/dist/botlit/pages/ChatPage.js.map +1 -1
  201. package/dist/botlit/pages/DashboardPage.d.ts +2 -0
  202. package/dist/botlit/pages/DashboardPage.js +37 -38
  203. package/dist/botlit/pages/DashboardPage.js.map +1 -1
  204. package/dist/botlit/pages/ExecutionDetailPage.d.ts +2 -0
  205. package/dist/botlit/pages/ExecutionDetailPage.js +47 -48
  206. package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -1
  207. package/dist/botlit/pages/ExecutionsPage.d.ts +2 -0
  208. package/dist/botlit/pages/ExecutionsPage.js +72 -70
  209. package/dist/botlit/pages/ExecutionsPage.js.map +1 -1
  210. package/dist/botlit/pages/InstalledPackagesPage.d.ts +2 -0
  211. package/dist/botlit/pages/InstalledPackagesPage.js +77 -78
  212. package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
  213. package/dist/botlit/pages/KnowledgeBaseDetailPage.d.ts +6 -0
  214. package/dist/botlit/pages/KnowledgeBaseDetailPage.js +171 -181
  215. package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -1
  216. package/dist/botlit/pages/KnowledgeBasesPage.d.ts +2 -0
  217. package/dist/botlit/pages/KnowledgeBasesPage.js +30 -31
  218. package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
  219. package/dist/botlit/pages/MCPServerDetailPage.d.ts +6 -0
  220. package/dist/botlit/pages/MCPServerDetailPage.js +82 -83
  221. package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
  222. package/dist/botlit/pages/MCPServersPage.d.ts +2 -0
  223. package/dist/botlit/pages/MCPServersPage.js +54 -55
  224. package/dist/botlit/pages/MCPServersPage.js.map +1 -1
  225. package/dist/botlit/pages/PoliciesPage.d.ts +2 -0
  226. package/dist/botlit/pages/PoliciesPage.js +25 -26
  227. package/dist/botlit/pages/PoliciesPage.js.map +1 -1
  228. package/dist/botlit/pages/PolicyDetailPage.d.ts +6 -0
  229. package/dist/botlit/pages/PolicyDetailPage.js +257 -259
  230. package/dist/botlit/pages/PolicyDetailPage.js.map +1 -1
  231. package/dist/botlit/pages/PromptStudioPage.d.ts +2 -0
  232. package/dist/botlit/pages/PromptStudioPage.js +35 -35
  233. package/dist/botlit/pages/PromptStudioPage.js.map +1 -1
  234. package/dist/botlit/pages/PromptTemplateDetailPage.d.ts +6 -0
  235. package/dist/botlit/pages/PromptTemplateDetailPage.js +363 -362
  236. package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -1
  237. package/dist/botlit/pages/PromptTemplatesPage.d.ts +2 -0
  238. package/dist/botlit/pages/PromptTemplatesPage.js +26 -27
  239. package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -1
  240. package/dist/botlit/pages/RetrievalProfileDetailPage.d.ts +6 -0
  241. package/dist/botlit/pages/RetrievalProfileDetailPage.js +150 -158
  242. package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -1
  243. package/dist/botlit/pages/RetrievalProfilesPage.d.ts +2 -0
  244. package/dist/botlit/pages/RetrievalProfilesPage.js +24 -25
  245. package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
  246. package/dist/botlit/pages/SettingsPage.d.ts +2 -0
  247. package/dist/botlit/pages/SettingsPage.js +124 -125
  248. package/dist/botlit/pages/SettingsPage.js.map +1 -1
  249. package/dist/botlit/pages/SkillDetailPage.d.ts +6 -0
  250. package/dist/botlit/pages/SkillDetailPage.js +216 -217
  251. package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
  252. package/dist/botlit/pages/SkillsPage.d.ts +2 -0
  253. package/dist/botlit/pages/SkillsPage.js +24 -25
  254. package/dist/botlit/pages/SkillsPage.js.map +1 -1
  255. package/dist/botlit/pages/StorePackageDetailPage.d.ts +2 -0
  256. package/dist/botlit/pages/StorePackageDetailPage.js +38 -39
  257. package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
  258. package/dist/botlit/pages/StorePage.d.ts +2 -0
  259. package/dist/botlit/pages/StorePage.js +135 -136
  260. package/dist/botlit/pages/StorePage.js.map +1 -1
  261. package/dist/botlit/pages/index.d.ts +38 -0
  262. package/dist/botlit/permissions/PermissionRequired.d.ts +20 -0
  263. package/dist/botlit/permissions/PermissionRequired.js +10 -11
  264. package/dist/botlit/permissions/PermissionRequired.js.map +1 -1
  265. package/dist/botlit/permissions/botmanorPermissions.d.ts +82 -0
  266. package/dist/botlit/permissions/botmanorPermissions.js +1 -2
  267. package/dist/botlit/permissions/botmanorPermissions.js.map +1 -1
  268. package/dist/botlit/permissions/index.d.ts +7 -0
  269. package/dist/botlit/permissions/index.js +4 -3
  270. package/dist/botlit/permissions/useBotmanorPermissions.d.ts +41 -0
  271. package/dist/botlit/permissions/useBotmanorPermissions.js +1 -2
  272. package/dist/botlit/permissions/useBotmanorPermissions.js.map +1 -1
  273. package/dist/botlit/providers/BotlitProvider.d.ts +14 -0
  274. package/dist/botlit/providers/BotlitProvider.js +3 -3
  275. package/dist/botlit/providers/BotlitProvider.js.map +1 -1
  276. package/dist/botlit/store/botlitStore.d.ts +85 -0
  277. package/dist/botlit/store/botlitStore.js +1 -2
  278. package/dist/botlit/store/botlitStore.js.map +1 -1
  279. package/dist/botlit/store/renamedKeyStorage.d.ts +13 -0
  280. package/dist/botlit/store/renamedKeyStorage.js +1 -2
  281. package/dist/botlit/store/renamedKeyStorage.js.map +1 -1
  282. package/dist/botlit/types/index.d.ts +1008 -0
  283. package/dist/botlit/utils/cn.d.ts +2 -0
  284. package/dist/botlit/utils/cn.js +1 -2
  285. package/dist/botlit/utils/cn.js.map +1 -1
  286. package/dist/botlit/utils/embedding-models.d.ts +9 -0
  287. package/dist/botlit/utils/embedding-models.js +1 -2
  288. package/dist/botlit/utils/embedding-models.js.map +1 -1
  289. package/dist/botlit/utils/errors.d.ts +19 -0
  290. package/dist/botlit/utils/errors.js +1 -2
  291. package/dist/botlit/utils/errors.js.map +1 -1
  292. package/dist/botlit/utils/formatters.d.ts +38 -0
  293. package/dist/botlit/utils/formatters.js +0 -1
  294. package/dist/botlit/utils/formatters.js.map +1 -1
  295. package/dist/botlit/utils/navigation.d.ts +19 -0
  296. package/dist/botlit/utils/navigation.js +1 -2
  297. package/dist/botlit/utils/navigation.js.map +1 -1
  298. package/dist/botlit/utils/policyConfig.d.ts +68 -0
  299. package/dist/botlit/utils/policyConfig.js +2 -3
  300. package/dist/botlit/utils/policyConfig.js.map +1 -1
  301. package/dist/botlit/utils/unions.d.ts +25 -0
  302. package/dist/botlit/utils/unions.js +1 -2
  303. package/dist/botlit/utils/unions.js.map +1 -1
  304. package/dist/dev/App.d.ts +2 -0
  305. package/dist/dev/main.d.ts +0 -0
  306. package/dist/generated/global-operations.d.ts +197 -0
  307. package/dist/generated/global-operations.js +1 -2
  308. package/dist/generated/global-operations.js.map +1 -1
  309. package/dist/generated/global-types.d.ts +27678 -0
  310. package/dist/generated/global-types.js +1 -2
  311. package/dist/generated/global-types.js.map +1 -1
  312. package/dist/generated/wspace-operations.d.ts +5489 -0
  313. package/dist/generated/wspace-operations.js +88 -84
  314. package/dist/generated/wspace-operations.js.map +1 -1
  315. package/dist/generated/wspace-types.d.ts +152017 -0
  316. package/dist/generated/wspace-types.js +1 -2
  317. package/dist/generated/wspace-types.js.map +1 -1
  318. package/dist/index.d.ts +5 -0
  319. package/dist/index.js +5 -6
  320. package/dist/shared/hooks/useTr.d.ts +16 -0
  321. package/dist/shared/hooks/useTr.js +1 -2
  322. package/dist/shared/hooks/useTr.js.map +1 -1
  323. package/dist/stories/Badge.stories.d.ts +11 -0
  324. package/dist/stories/Button.stories.d.ts +13 -0
  325. package/dist/stories/EmptyState.stories.d.ts +8 -0
  326. package/dist/stories/StatusBadge.stories.d.ts +9 -0
  327. package/dist/test/fixtures.d.ts +39 -0
  328. package/dist/test/happydom.d.ts +1 -0
  329. package/dist/test/renderPage.d.ts +18 -0
  330. package/dist/test/setup.d.ts +9 -0
  331. package/dist/utils/nativeBridge.d.ts +2 -0
  332. package/dist/utils/nativeBridge.js +1 -2
  333. package/package.json +87 -60
  334. package/dist/botlit/hooks/useConversations.js +0 -64
  335. package/dist/botlit/hooks/useConversations.js.map +0 -1
@@ -0,0 +1,95 @@
1
+ import { AiPredictionStatus } from '../../generated/wspace-types';
2
+ import { QueryResult } from './internal/workspaceGateway';
3
+ export interface AiPredictionRecord {
4
+ id: string;
5
+ predictionType: string;
6
+ subjectType: string | null;
7
+ subjectId: string | null;
8
+ score: number;
9
+ confidence: number;
10
+ recommendation: string;
11
+ status: string;
12
+ features: Record<string, unknown> | null;
13
+ /** Supervisor metadata: fingerprint, severity, subjectName, runId. */
14
+ metadata: Record<string, unknown> | null;
15
+ generatedAt: string;
16
+ }
17
+ export interface AiPredictionsFilter {
18
+ subjectType?: string;
19
+ subjectId?: string;
20
+ status?: string;
21
+ }
22
+ export interface SupervisorConfigRecord {
23
+ enabled: boolean;
24
+ cron: string;
25
+ timezone: string;
26
+ lastRunAt: string | null;
27
+ updatedAt: string;
28
+ }
29
+ export interface SupervisorRunRecord {
30
+ id: string;
31
+ trigger: string;
32
+ status: string;
33
+ findings: number;
34
+ notified: number;
35
+ error: string | null;
36
+ startedAt: string;
37
+ completedAt: string | null;
38
+ }
39
+ export declare const aiOperationsKeys: {
40
+ all: readonly ["ai-operations"];
41
+ predictions: (filter?: AiPredictionsFilter) => readonly ["ai-operations", "predictions", AiPredictionsFilter | undefined];
42
+ config: () => readonly ["ai-operations", "config"];
43
+ runs: () => readonly ["ai-operations", "runs"];
44
+ };
45
+ /** Decision-card feed, optionally narrowed to one subject (agent/app/KB). */
46
+ export declare function useAiPredictions(filter?: AiPredictionsFilter): QueryResult<AiPredictionRecord[]>;
47
+ /** Accept / dismiss one finding. Callers refetch the feed afterwards. */
48
+ export declare function useSetAiPredictionStatus(): readonly [
49
+ (input: {
50
+ id: string;
51
+ status: AiPredictionStatus;
52
+ }) => Promise<{
53
+ id: string;
54
+ status: string;
55
+ }>,
56
+ {
57
+ data: {
58
+ id: string;
59
+ status: string;
60
+ } | undefined;
61
+ loading: boolean;
62
+ error: Error | undefined;
63
+ }
64
+ ];
65
+ export declare function useSupervisorConfig(): QueryResult<SupervisorConfigRecord | undefined>;
66
+ export declare function useConfigureSupervisor(): readonly [
67
+ (input: {
68
+ enabled?: boolean;
69
+ cron?: string;
70
+ timezone?: string;
71
+ }) => Promise<SupervisorConfigRecord>,
72
+ {
73
+ data: SupervisorConfigRecord | undefined;
74
+ loading: boolean;
75
+ error: Error | undefined;
76
+ }
77
+ ];
78
+ export interface RunSupervisorNowResult {
79
+ run: SupervisorRunRecord | null;
80
+ findings: number;
81
+ }
82
+ /** Manual fleet review (the scheduled path is the FluidGrids cron tick). */
83
+ export declare function useRunSupervisorNow(): readonly [
84
+ () => Promise<RunSupervisorNowResult>,
85
+ {
86
+ data: RunSupervisorNowResult | undefined;
87
+ loading: boolean;
88
+ error: Error | undefined;
89
+ }
90
+ ];
91
+ export declare function useSupervisorRuns(): QueryResult<SupervisorRunRecord[]>;
92
+ /** Severity from supervisor metadata (WARNING/CRITICAL/INFO), defaulting to INFO. */
93
+ export declare function predictionSeverity(record: AiPredictionRecord): string;
94
+ /** Human name the supervisor recorded for the subject, when present. */
95
+ export declare function predictionSubjectName(record: AiPredictionRecord): string;
@@ -1,26 +1,26 @@
1
1
  import { ConfigureSupervisorDocument as e, GetSupervisorConfigDocument as t, ListAiPredictionsDocument as n, ListSupervisorRunsDocument as r, RunSupervisorNowDocument as i, SetAiPredictionStatusDocument as a } from "../../generated/wspace-operations.js";
2
2
  import { useWorkspaceId as o, useWorkspaceMutation as s, useWorkspaceQuery as c } from "./internal/workspaceGateway.js";
3
3
  import { useMemo as l } from "react";
4
- //#region src/botlit/hooks/useAiOperations.ts
4
+ // src/botlit/hooks/useAiOperations.ts
5
5
  var u = 50, d = [], f = [];
6
6
  function p(e) {
7
- let t = o(), { subjectType: r, subjectId: i, status: a } = e ?? {};
7
+ let t = o(), { subjectType: r, subjectId: i, status: a } = e ?? {}, s = l(() => {
8
+ let e = { sourceProduct: "botmanor" };
9
+ return r && (e.subjectType = r), i && (e.subjectId = i), a && (e.status = a), {
10
+ filter: e,
11
+ pagination: {
12
+ limit: u,
13
+ offset: 0
14
+ }
15
+ };
16
+ }, [
17
+ r,
18
+ i,
19
+ a
20
+ ]);
8
21
  return c({
9
22
  document: n,
10
- variables: l(() => {
11
- let e = { sourceProduct: "botmanor" };
12
- return r && (e.subjectType = r), i && (e.subjectId = i), a && (e.status = a), {
13
- filter: e,
14
- pagination: {
15
- limit: u,
16
- offset: 0
17
- }
18
- };
19
- }, [
20
- r,
21
- i,
22
- a
23
- ]),
23
+ variables: s,
24
24
  enabled: !!t,
25
25
  errorMessage: "Failed to load AI operations findings.",
26
26
  fallback: d,
@@ -57,10 +57,11 @@ function m() {
57
57
  });
58
58
  }
59
59
  function h() {
60
+ let e = o();
60
61
  return c({
61
62
  document: t,
62
63
  variables: {},
63
- enabled: !!o(),
64
+ enabled: !!e,
64
65
  errorMessage: "Failed to load the supervisor configuration.",
65
66
  fallback: void 0,
66
67
  select: (e) => {
@@ -118,13 +119,14 @@ function _() {
118
119
  });
119
120
  }
120
121
  function v() {
122
+ let e = o();
121
123
  return c({
122
124
  document: r,
123
125
  variables: { pagination: {
124
126
  limit: 20,
125
127
  offset: 0
126
128
  } },
127
- enabled: !!o(),
129
+ enabled: !!e,
128
130
  errorMessage: "Failed to load the supervisor run history.",
129
131
  fallback: f,
130
132
  select: (e) => (e?.supervisorRuns.items ?? []).map((e) => ({
@@ -147,7 +149,6 @@ function b(e) {
147
149
  let t = e.metadata?.subjectName;
148
150
  return typeof t == "string" && t.length > 0 ? t : e.subjectId ?? e.predictionType;
149
151
  }
150
- //#endregion
151
152
  export { y as predictionSeverity, b as predictionSubjectName, p as useAiPredictions, g as useConfigureSupervisor, _ as useRunSupervisorNow, m as useSetAiPredictionStatus, h as useSupervisorConfig, v as useSupervisorRuns };
152
153
 
153
154
  //# sourceMappingURL=useAiOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAiOperations.js","names":[],"sources":["../../../src/botlit/hooks/useAiOperations.ts"],"sourcesContent":["/**\n * AI Operations hooks (BOFF-3839)\n * @module botlit/hooks\n *\n * Backed by the supervisor surface on wspace-botmanor-svc: the AiPrediction\n * feed (findings as decision cards), the supervisor configuration, run-now\n * and the run history. Read conventions come from `useExecutions`\n * (network-only, explicit error state, caller-driven refetch).\n */\n\nimport { useMemo } from 'react';\nimport {\n ConfigureSupervisorDocument,\n GetSupervisorConfigDocument,\n ListAiPredictionsDocument,\n ListSupervisorRunsDocument,\n RunSupervisorNowDocument,\n SetAiPredictionStatusDocument,\n type ConfigureSupervisorMutation,\n type ConfigureSupervisorMutationVariables,\n type GetSupervisorConfigQuery,\n type ListAiPredictionsQuery,\n type ListSupervisorRunsQuery,\n type RunSupervisorNowMutation,\n type SetAiPredictionStatusMutation,\n type SetAiPredictionStatusMutationVariables,\n} from '../../generated/wspace-operations';\nimport type {\n AiPredictionFilterInput,\n AiPredictionStatus,\n ConfigureSupervisorInput,\n} from '../../generated/wspace-types';\nimport {\n useWorkspaceId,\n useWorkspaceMutation,\n useWorkspaceQuery,\n type QueryResult,\n} from './internal/workspaceGateway';\n\nconst LIST_LIMIT = 50;\n\nexport interface AiPredictionRecord {\n id: string;\n predictionType: string;\n subjectType: string | null;\n subjectId: string | null;\n score: number;\n confidence: number;\n recommendation: string;\n status: string;\n features: Record<string, unknown> | null;\n /** Supervisor metadata: fingerprint, severity, subjectName, runId. */\n metadata: Record<string, unknown> | null;\n generatedAt: string;\n}\n\nexport interface AiPredictionsFilter {\n subjectType?: string;\n subjectId?: string;\n status?: string;\n}\n\nexport interface SupervisorConfigRecord {\n enabled: boolean;\n cron: string;\n timezone: string;\n lastRunAt: string | null;\n updatedAt: string;\n}\n\nexport interface SupervisorRunRecord {\n id: string;\n trigger: string;\n status: string;\n findings: number;\n notified: number;\n error: string | null;\n startedAt: string;\n completedAt: string | null;\n}\n\nconst NO_PREDICTIONS: AiPredictionRecord[] = [];\nconst NO_RUNS: SupervisorRunRecord[] = [];\n\nexport const aiOperationsKeys = {\n all: ['ai-operations'] as const,\n predictions: (filter?: AiPredictionsFilter) =>\n [...aiOperationsKeys.all, 'predictions', filter] as const,\n config: () => [...aiOperationsKeys.all, 'config'] as const,\n runs: () => [...aiOperationsKeys.all, 'runs'] as const,\n};\n\n/** Decision-card feed, optionally narrowed to one subject (agent/app/KB). */\nexport function useAiPredictions(filter?: AiPredictionsFilter): QueryResult<AiPredictionRecord[]> {\n const workspaceId = useWorkspaceId();\n const { subjectType, subjectId, status } = filter ?? {};\n\n const variables = useMemo(() => {\n const gqlFilter: AiPredictionFilterInput = { sourceProduct: 'botmanor' };\n if (subjectType) gqlFilter.subjectType = subjectType;\n if (subjectId) gqlFilter.subjectId = subjectId;\n if (status) gqlFilter.status = status as AiPredictionStatus;\n return { filter: gqlFilter, pagination: { limit: LIST_LIMIT, offset: 0 } };\n }, [subjectType, subjectId, status]);\n\n return useWorkspaceQuery<ListAiPredictionsQuery, AiPredictionRecord[]>({\n document: ListAiPredictionsDocument,\n variables,\n enabled: !!workspaceId,\n errorMessage: 'Failed to load AI operations findings.',\n fallback: NO_PREDICTIONS,\n select: (data) =>\n (data?.aiPredictions.items ?? []).map((item) => ({\n id: item.id,\n predictionType: item.predictionType,\n subjectType: item.subjectType ?? null,\n subjectId: item.subjectId ?? null,\n score: item.score,\n confidence: item.confidence,\n recommendation: item.recommendation,\n status: item.status,\n features: (item.features ?? null) as Record<string, unknown> | null,\n metadata: (item.metadata ?? null) as Record<string, unknown> | null,\n generatedAt: item.generatedAt,\n })),\n });\n}\n\n/** Accept / dismiss one finding. Callers refetch the feed afterwards. */\nexport function useSetAiPredictionStatus(): readonly [\n (input: { id: string; status: AiPredictionStatus }) => Promise<{ id: string; status: string }>,\n { data: { id: string; status: string } | undefined; loading: boolean; error: Error | undefined },\n] {\n return useWorkspaceMutation<\n SetAiPredictionStatusMutation,\n { id: string; status: AiPredictionStatus },\n { id: string; status: string }\n >({\n document: SetAiPredictionStatusDocument,\n variables: (input) =>\n ({ id: input.id, status: input.status }) as SetAiPredictionStatusMutationVariables,\n select: (data) => {\n const row = data?.setAiPredictionStatus;\n return row ? { id: row.id, status: row.status } : undefined;\n },\n errorMessage: 'Failed to update the finding.',\n });\n}\n\nexport function useSupervisorConfig(): QueryResult<SupervisorConfigRecord | undefined> {\n const workspaceId = useWorkspaceId();\n return useWorkspaceQuery<GetSupervisorConfigQuery, SupervisorConfigRecord | undefined>({\n document: GetSupervisorConfigDocument,\n variables: {},\n enabled: !!workspaceId,\n errorMessage: 'Failed to load the supervisor configuration.',\n fallback: undefined,\n select: (data) => {\n const config = data?.supervisorConfig;\n if (!config) return undefined;\n return {\n enabled: config.enabled,\n cron: config.cron,\n timezone: config.timezone,\n lastRunAt: config.lastRunAt ?? null,\n updatedAt: config.updatedAt,\n };\n },\n });\n}\n\nexport function useConfigureSupervisor(): readonly [\n (input: {\n enabled?: boolean;\n cron?: string;\n timezone?: string;\n }) => Promise<SupervisorConfigRecord>,\n { data: SupervisorConfigRecord | undefined; loading: boolean; error: Error | undefined },\n] {\n return useWorkspaceMutation<\n ConfigureSupervisorMutation,\n ConfigureSupervisorInput,\n SupervisorConfigRecord\n >({\n document: ConfigureSupervisorDocument,\n variables: (input) => ({ input }) as ConfigureSupervisorMutationVariables,\n select: (data) => {\n const config = data?.configureSupervisor;\n if (!config) return undefined;\n return {\n enabled: config.enabled,\n cron: config.cron,\n timezone: config.timezone,\n lastRunAt: config.lastRunAt ?? null,\n updatedAt: config.updatedAt,\n };\n },\n errorMessage: 'Failed to save the supervisor configuration.',\n });\n}\n\nexport interface RunSupervisorNowResult {\n run: SupervisorRunRecord | null;\n findings: number;\n}\n\n/** Manual fleet review (the scheduled path is the FluidGrids cron tick). */\nexport function useRunSupervisorNow(): readonly [\n () => Promise<RunSupervisorNowResult>,\n { data: RunSupervisorNowResult | undefined; loading: boolean; error: Error | undefined },\n] {\n return useWorkspaceMutation<RunSupervisorNowMutation, void, RunSupervisorNowResult>({\n document: RunSupervisorNowDocument,\n variables: () => ({}),\n select: (data) => {\n const result = data?.runSupervisorNow;\n if (!result) return undefined;\n const run = result.run;\n return {\n findings: result.findings,\n run: run\n ? {\n id: run.id,\n trigger: run.trigger,\n status: run.status,\n findings: run.findings,\n notified: run.notified,\n error: run.error ?? null,\n startedAt: run.startedAt,\n completedAt: run.completedAt ?? null,\n }\n : null,\n };\n },\n errorMessage: 'Failed to run the supervisor review.',\n });\n}\n\nexport function useSupervisorRuns(): QueryResult<SupervisorRunRecord[]> {\n const workspaceId = useWorkspaceId();\n return useWorkspaceQuery<ListSupervisorRunsQuery, SupervisorRunRecord[]>({\n document: ListSupervisorRunsDocument,\n variables: { pagination: { limit: 20, offset: 0 } },\n enabled: !!workspaceId,\n errorMessage: 'Failed to load the supervisor run history.',\n fallback: NO_RUNS,\n select: (data) =>\n (data?.supervisorRuns.items ?? []).map((run) => ({\n id: run.id,\n trigger: run.trigger,\n status: run.status,\n findings: run.findings,\n notified: run.notified,\n error: run.error ?? null,\n startedAt: run.startedAt,\n completedAt: run.completedAt ?? null,\n })),\n });\n}\n\n/** Severity from supervisor metadata (WARNING/CRITICAL/INFO), defaulting to INFO. */\nexport function predictionSeverity(record: AiPredictionRecord): string {\n const severity = record.metadata?.['severity'];\n return typeof severity === 'string' ? severity : 'INFO';\n}\n\n/** Human name the supervisor recorded for the subject, when present. */\nexport function predictionSubjectName(record: AiPredictionRecord): string {\n const name = record.metadata?.['subjectName'];\n if (typeof name === 'string' && name.length > 0) return name;\n return record.subjectId ?? record.predictionType;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useAiOperations.js","names":["LIST_LIMIT","NO_PREDICTIONS","NO_RUNS","useAiPredictions","workspaceId","useWorkspaceId","filter","variables","useMemo","gqlFilter","subjectType","subjectId","status","useWorkspaceQuery","ListAiPredictionsDocument","data","item","useSetAiPredictionStatus","useWorkspaceMutation","SetAiPredictionStatusDocument","input","row","useSupervisorConfig","GetSupervisorConfigDocument","config","useConfigureSupervisor","ConfigureSupervisorDocument","useRunSupervisorNow","RunSupervisorNowDocument","result","run","useSupervisorRuns","ListSupervisorRunsDocument","predictionSeverity","severity","record","\"severity\"","predictionSubjectName","name","\"subjectName\""],"sources":["../../../src/botlit/hooks/useAiOperations.ts"],"sourcesContent":["/**\n * AI Operations hooks (BOFF-3839)\n * @module botlit/hooks\n *\n * Backed by the supervisor surface on wspace-botmanor-svc: the AiPrediction\n * feed (findings as decision cards), the supervisor configuration, run-now\n * and the run history. Read conventions come from `useExecutions`\n * (network-only, explicit error state, caller-driven refetch).\n */\n\nimport { useMemo } from 'react';\nimport {\n ConfigureSupervisorDocument,\n GetSupervisorConfigDocument,\n ListAiPredictionsDocument,\n ListSupervisorRunsDocument,\n RunSupervisorNowDocument,\n SetAiPredictionStatusDocument,\n type ConfigureSupervisorMutation,\n type ConfigureSupervisorMutationVariables,\n type GetSupervisorConfigQuery,\n type ListAiPredictionsQuery,\n type ListSupervisorRunsQuery,\n type RunSupervisorNowMutation,\n type SetAiPredictionStatusMutation,\n type SetAiPredictionStatusMutationVariables,\n} from '../../generated/wspace-operations';\nimport type {\n AiPredictionFilterInput,\n AiPredictionStatus,\n ConfigureSupervisorInput,\n} from '../../generated/wspace-types';\nimport {\n useWorkspaceId,\n useWorkspaceMutation,\n useWorkspaceQuery,\n type QueryResult,\n} from './internal/workspaceGateway';\n\nconst LIST_LIMIT = 50;\n\nexport interface AiPredictionRecord {\n id: string;\n predictionType: string;\n subjectType: string | null;\n subjectId: string | null;\n score: number;\n confidence: number;\n recommendation: string;\n status: string;\n features: Record<string, unknown> | null;\n /** Supervisor metadata: fingerprint, severity, subjectName, runId. */\n metadata: Record<string, unknown> | null;\n generatedAt: string;\n}\n\nexport interface AiPredictionsFilter {\n subjectType?: string;\n subjectId?: string;\n status?: string;\n}\n\nexport interface SupervisorConfigRecord {\n enabled: boolean;\n cron: string;\n timezone: string;\n lastRunAt: string | null;\n updatedAt: string;\n}\n\nexport interface SupervisorRunRecord {\n id: string;\n trigger: string;\n status: string;\n findings: number;\n notified: number;\n error: string | null;\n startedAt: string;\n completedAt: string | null;\n}\n\nconst NO_PREDICTIONS: AiPredictionRecord[] = [];\nconst NO_RUNS: SupervisorRunRecord[] = [];\n\nexport const aiOperationsKeys = {\n all: ['ai-operations'] as const,\n predictions: (filter?: AiPredictionsFilter) =>\n [...aiOperationsKeys.all, 'predictions', filter] as const,\n config: () => [...aiOperationsKeys.all, 'config'] as const,\n runs: () => [...aiOperationsKeys.all, 'runs'] as const,\n};\n\n/** Decision-card feed, optionally narrowed to one subject (agent/app/KB). */\nexport function useAiPredictions(filter?: AiPredictionsFilter): QueryResult<AiPredictionRecord[]> {\n const workspaceId = useWorkspaceId();\n const { subjectType, subjectId, status } = filter ?? {};\n\n const variables = useMemo(() => {\n const gqlFilter: AiPredictionFilterInput = { sourceProduct: 'botmanor' };\n if (subjectType) gqlFilter.subjectType = subjectType;\n if (subjectId) gqlFilter.subjectId = subjectId;\n if (status) gqlFilter.status = status as AiPredictionStatus;\n return { filter: gqlFilter, pagination: { limit: LIST_LIMIT, offset: 0 } };\n }, [subjectType, subjectId, status]);\n\n return useWorkspaceQuery<ListAiPredictionsQuery, AiPredictionRecord[]>({\n document: ListAiPredictionsDocument,\n variables,\n enabled: !!workspaceId,\n errorMessage: 'Failed to load AI operations findings.',\n fallback: NO_PREDICTIONS,\n select: (data) =>\n (data?.aiPredictions.items ?? []).map((item) => ({\n id: item.id,\n predictionType: item.predictionType,\n subjectType: item.subjectType ?? null,\n subjectId: item.subjectId ?? null,\n score: item.score,\n confidence: item.confidence,\n recommendation: item.recommendation,\n status: item.status,\n features: (item.features ?? null) as Record<string, unknown> | null,\n metadata: (item.metadata ?? null) as Record<string, unknown> | null,\n generatedAt: item.generatedAt,\n })),\n });\n}\n\n/** Accept / dismiss one finding. Callers refetch the feed afterwards. */\nexport function useSetAiPredictionStatus(): readonly [\n (input: { id: string; status: AiPredictionStatus }) => Promise<{ id: string; status: string }>,\n { data: { id: string; status: string } | undefined; loading: boolean; error: Error | undefined },\n] {\n return useWorkspaceMutation<\n SetAiPredictionStatusMutation,\n { id: string; status: AiPredictionStatus },\n { id: string; status: string }\n >({\n document: SetAiPredictionStatusDocument,\n variables: (input) =>\n ({ id: input.id, status: input.status }) as SetAiPredictionStatusMutationVariables,\n select: (data) => {\n const row = data?.setAiPredictionStatus;\n return row ? { id: row.id, status: row.status } : undefined;\n },\n errorMessage: 'Failed to update the finding.',\n });\n}\n\nexport function useSupervisorConfig(): QueryResult<SupervisorConfigRecord | undefined> {\n const workspaceId = useWorkspaceId();\n return useWorkspaceQuery<GetSupervisorConfigQuery, SupervisorConfigRecord | undefined>({\n document: GetSupervisorConfigDocument,\n variables: {},\n enabled: !!workspaceId,\n errorMessage: 'Failed to load the supervisor configuration.',\n fallback: undefined,\n select: (data) => {\n const config = data?.supervisorConfig;\n if (!config) return undefined;\n return {\n enabled: config.enabled,\n cron: config.cron,\n timezone: config.timezone,\n lastRunAt: config.lastRunAt ?? null,\n updatedAt: config.updatedAt,\n };\n },\n });\n}\n\nexport function useConfigureSupervisor(): readonly [\n (input: {\n enabled?: boolean;\n cron?: string;\n timezone?: string;\n }) => Promise<SupervisorConfigRecord>,\n { data: SupervisorConfigRecord | undefined; loading: boolean; error: Error | undefined },\n] {\n return useWorkspaceMutation<\n ConfigureSupervisorMutation,\n ConfigureSupervisorInput,\n SupervisorConfigRecord\n >({\n document: ConfigureSupervisorDocument,\n variables: (input) => ({ input }) as ConfigureSupervisorMutationVariables,\n select: (data) => {\n const config = data?.configureSupervisor;\n if (!config) return undefined;\n return {\n enabled: config.enabled,\n cron: config.cron,\n timezone: config.timezone,\n lastRunAt: config.lastRunAt ?? null,\n updatedAt: config.updatedAt,\n };\n },\n errorMessage: 'Failed to save the supervisor configuration.',\n });\n}\n\nexport interface RunSupervisorNowResult {\n run: SupervisorRunRecord | null;\n findings: number;\n}\n\n/** Manual fleet review (the scheduled path is the FluidGrids cron tick). */\nexport function useRunSupervisorNow(): readonly [\n () => Promise<RunSupervisorNowResult>,\n { data: RunSupervisorNowResult | undefined; loading: boolean; error: Error | undefined },\n] {\n return useWorkspaceMutation<RunSupervisorNowMutation, void, RunSupervisorNowResult>({\n document: RunSupervisorNowDocument,\n variables: () => ({}),\n select: (data) => {\n const result = data?.runSupervisorNow;\n if (!result) return undefined;\n const run = result.run;\n return {\n findings: result.findings,\n run: run\n ? {\n id: run.id,\n trigger: run.trigger,\n status: run.status,\n findings: run.findings,\n notified: run.notified,\n error: run.error ?? null,\n startedAt: run.startedAt,\n completedAt: run.completedAt ?? null,\n }\n : null,\n };\n },\n errorMessage: 'Failed to run the supervisor review.',\n });\n}\n\nexport function useSupervisorRuns(): QueryResult<SupervisorRunRecord[]> {\n const workspaceId = useWorkspaceId();\n return useWorkspaceQuery<ListSupervisorRunsQuery, SupervisorRunRecord[]>({\n document: ListSupervisorRunsDocument,\n variables: { pagination: { limit: 20, offset: 0 } },\n enabled: !!workspaceId,\n errorMessage: 'Failed to load the supervisor run history.',\n fallback: NO_RUNS,\n select: (data) =>\n (data?.supervisorRuns.items ?? []).map((run) => ({\n id: run.id,\n trigger: run.trigger,\n status: run.status,\n findings: run.findings,\n notified: run.notified,\n error: run.error ?? null,\n startedAt: run.startedAt,\n completedAt: run.completedAt ?? null,\n })),\n });\n}\n\n/** Severity from supervisor metadata (WARNING/CRITICAL/INFO), defaulting to INFO. */\nexport function predictionSeverity(record: AiPredictionRecord): string {\n const severity = record.metadata?.['severity'];\n return typeof severity === 'string' ? severity : 'INFO';\n}\n\n/** Human name the supervisor recorded for the subject, when present. */\nexport function predictionSubjectName(record: AiPredictionRecord): string {\n const name = record.metadata?.['subjectName'];\n if (typeof name === 'string' && name.length > 0) return name;\n return record.subjectId ?? record.predictionType;\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ interface Installation {
2
+ id: string;
3
+ workspaceId: string;
4
+ routeId: string;
5
+ publicationId: string;
6
+ enabled: boolean;
7
+ }
8
+ export declare function useAssistantChannels(): {
9
+ installations: import('@tanstack/react-query').UseQueryResult<Installation[], Error>;
10
+ configure: import('@tanstack/react-query').UseMutationResult<Installation, Error, {
11
+ routeId: string;
12
+ publicationId: string;
13
+ }, unknown>;
14
+ disable: import('@tanstack/react-query').UseMutationResult<void, Error, string, unknown>;
15
+ };
16
+ export {};
@@ -2,7 +2,7 @@ import { useBotlit as e } from "../providers/BotlitProvider.js";
2
2
  import { gql as t } from "@apollo/client";
3
3
  import { useGatewayClient as n } from "@burdenoff/fe-libs/shared/graphql";
4
4
  import { useMutation as r, useQuery as i, useQueryClient as a } from "@tanstack/react-query";
5
- //#region src/botlit/hooks/useAssistantChannels.ts
5
+ // src/botlit/hooks/useAssistantChannels.ts
6
6
  var o = t`
7
7
  query AssistantChannelPublications {
8
8
  assistantChannelInstallations {
@@ -70,7 +70,6 @@ function l() {
70
70
  })
71
71
  };
72
72
  }
73
- //#endregion
74
73
  export { l as useAssistantChannels };
75
74
 
76
75
  //# sourceMappingURL=useAssistantChannels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantChannels.js","names":[],"sources":["../../../src/botlit/hooks/useAssistantChannels.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\nimport { useBotlit } from '../providers/BotlitProvider';\n\ninterface Installation {\n id: string;\n workspaceId: string;\n routeId: string;\n publicationId: string;\n enabled: boolean;\n}\nconst LIST = gql`\n query AssistantChannelPublications {\n assistantChannelInstallations {\n id\n workspaceId\n routeId\n publicationId\n enabled\n }\n }\n`;\nconst CONFIGURE = gql`\n mutation ConfigureAssistantChannel($routeId: ID!, $publicationId: ID!) {\n configureAssistantChannel(routeId: $routeId, publicationId: $publicationId) {\n id\n workspaceId\n routeId\n publicationId\n enabled\n }\n }\n`;\nconst DISABLE = gql`\n mutation DisableAssistantChannel($id: ID!) {\n disableAssistantChannel(id: $id)\n }\n`;\nexport function useAssistantChannels() {\n const client = useGatewayClient('workspace'),\n cache = useQueryClient(),\n { workspaceId, currentUser } = useBotlit();\n const key = ['botmanor-assistant-channels', workspaceId, currentUser?.id];\n const installations = useQuery({\n queryKey: key,\n enabled: Boolean(workspaceId && currentUser?.id),\n retry: false,\n queryFn: async () => {\n const response = await client.query<{ assistantChannelInstallations: Installation[] }>({\n query: LIST,\n fetchPolicy: 'no-cache',\n });\n const rows = response.data?.assistantChannelInstallations;\n if (!rows || rows.length > 100 || rows.some((row) => row.workspaceId !== workspaceId))\n throw new Error('Channel publications unavailable');\n return rows;\n },\n });\n const configure = useMutation({\n mutationFn: async (input: { routeId: string; publicationId: string }) => {\n const response = await client.mutate<{ configureAssistantChannel: Installation }>({\n mutation: CONFIGURE,\n variables: input,\n });\n const row = response.data?.configureAssistantChannel;\n if (\n !row ||\n row.workspaceId !== workspaceId ||\n row.routeId !== input.routeId ||\n row.publicationId !== input.publicationId\n )\n throw new Error('Channel publication unavailable');\n return row;\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n const disable = useMutation({\n mutationFn: async (id: string) => {\n const response = await client.mutate<{ disableAssistantChannel: boolean }>({\n mutation: DISABLE,\n variables: { id },\n });\n if (!response.data?.disableAssistantChannel)\n throw new Error('Channel revocation unavailable');\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n return { installations, configure, disable };\n}\n"],"mappings":";;;;;AAYA,IAAM,IAAO,CAAG;;;;;;;;;;GAWV,IAAY,CAAG;;;;;;;;;;GAWf,IAAU,CAAG;;;;;AAKnB,SAAgB,IAAuB;CACrC,IAAM,IAAS,EAAiB,YAAY,EAC1C,IAAQ,GAAgB,EACxB,EAAE,gBAAa,mBAAgB,GAAW,EACtC,IAAM;EAAC;EAA+B;EAAa,GAAa;EAAG;AA6CzE,QAAO;EAAE,eA5Ca,EAAS;GAC7B,UAAU;GACV,SAAS,GAAQ,KAAe,GAAa;GAC7C,OAAO;GACP,SAAS,YAAY;IAKnB,IAAM,KAJW,MAAM,EAAO,MAAyD;KACrF,OAAO;KACP,aAAa;KACd,CAAC,EACoB,MAAM;AAC5B,QAAI,CAAC,KAAQ,EAAK,SAAS,OAAO,EAAK,MAAM,MAAQ,EAAI,gBAAgB,EAAY,CACnF,OAAU,MAAM,mCAAmC;AACrD,WAAO;;GAEV,CAAC;EA8BsB,WA7BN,EAAY;GAC5B,YAAY,OAAO,MAAsD;IAKvE,IAAM,KAJW,MAAM,EAAO,OAAoD;KAChF,UAAU;KACV,WAAW;KACZ,CAAC,EACmB,MAAM;AAC3B,QACE,CAAC,KACD,EAAI,gBAAgB,KACpB,EAAI,YAAY,EAAM,WACtB,EAAI,kBAAkB,EAAM,cAE5B,OAAU,MAAM,kCAAkC;AACpD,WAAO;;GAET,iBAAiB,EAAM,kBAAkB,EAAE,UAAU,GAAK,CAAC;GAC5D,CAAC;EAYiC,SAXnB,EAAY;GAC1B,YAAY,OAAO,MAAe;AAKhC,QAAI,EAJa,MAAM,EAAO,OAA6C;KACzE,UAAU;KACV,WAAW,EAAE,OAAI;KAClB,CAAC,EACY,MAAM,wBAClB,OAAU,MAAM,iCAAiC;;GAErD,iBAAiB,EAAM,kBAAkB,EAAE,UAAU,GAAK,CAAC;GAC5D,CAAC;EAC0C"}
1
+ {"version":3,"file":"useAssistantChannels.js","names":["LIST","CONFIGURE","DISABLE","useAssistantChannels","client","useGatewayClient","cache","useQueryClient","useBotlit","key","workspaceId","currentUser","useQuery","rows","row","useMutation","input"],"sources":["../../../src/botlit/hooks/useAssistantChannels.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\nimport { useBotlit } from '../providers/BotlitProvider';\n\ninterface Installation {\n id: string;\n workspaceId: string;\n routeId: string;\n publicationId: string;\n enabled: boolean;\n}\nconst LIST = gql`\n query AssistantChannelPublications {\n assistantChannelInstallations {\n id\n workspaceId\n routeId\n publicationId\n enabled\n }\n }\n`;\nconst CONFIGURE = gql`\n mutation ConfigureAssistantChannel($routeId: ID!, $publicationId: ID!) {\n configureAssistantChannel(routeId: $routeId, publicationId: $publicationId) {\n id\n workspaceId\n routeId\n publicationId\n enabled\n }\n }\n`;\nconst DISABLE = gql`\n mutation DisableAssistantChannel($id: ID!) {\n disableAssistantChannel(id: $id)\n }\n`;\nexport function useAssistantChannels() {\n const client = useGatewayClient('workspace'),\n cache = useQueryClient(),\n { workspaceId, currentUser } = useBotlit();\n const key = ['botmanor-assistant-channels', workspaceId, currentUser?.id];\n const installations = useQuery({\n queryKey: key,\n enabled: Boolean(workspaceId && currentUser?.id),\n retry: false,\n queryFn: async () => {\n const response = await client.query<{ assistantChannelInstallations: Installation[] }>({\n query: LIST,\n fetchPolicy: 'no-cache',\n });\n const rows = response.data?.assistantChannelInstallations;\n if (!rows || rows.length > 100 || rows.some((row) => row.workspaceId !== workspaceId))\n throw new Error('Channel publications unavailable');\n return rows;\n },\n });\n const configure = useMutation({\n mutationFn: async (input: { routeId: string; publicationId: string }) => {\n const response = await client.mutate<{ configureAssistantChannel: Installation }>({\n mutation: CONFIGURE,\n variables: input,\n });\n const row = response.data?.configureAssistantChannel;\n if (\n !row ||\n row.workspaceId !== workspaceId ||\n row.routeId !== input.routeId ||\n row.publicationId !== input.publicationId\n )\n throw new Error('Channel publication unavailable');\n return row;\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n const disable = useMutation({\n mutationFn: async (id: string) => {\n const response = await client.mutate<{ disableAssistantChannel: boolean }>({\n mutation: DISABLE,\n variables: { id },\n });\n if (!response.data?.disableAssistantChannel)\n throw new Error('Channel revocation unavailable');\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n return { installations, configure, disable };\n}\n"],"mappings":";;;;;AAYA,IAAMA,IAAO,CAAG;;;;;;;;;;GAWVC,IAAY,CAAG;;;;;;;;;;GAWfC,IAAU,CAAG;;;;;AAKnB,SAAgBC,IAAuB;CACrC,IAAMC,IAASC,EAAiB,WAAW,GACzCC,IAAQC,EAAe,GACvB,EAAE,gBAAa,mBAAgBC,EAAU,GACrCC,IAAM;EAAC;EAA+BC;EAAaC,GAAa;CAAE;CA6CxE,OAAO;EAAE,eA5CaC,EAAS;GAC7B,UAAUH;GACV,SAAS,GAAQC,KAAeC,GAAa;GAC7C,OAAO;GACP,SAAS,YAAY;IAKnB,IAAME,KAAO,MAJUT,EAAO,MAAyD;KACrF,OAAOJ;KACP,aAAa;IACf,CAAC,EAAA,CACqB,MAAM;IAC5B,IAAI,CAACa,KAAQA,EAAK,SAAS,OAAOA,EAAK,MAAM,MAAQC,EAAI,gBAAgBJ,CAAW,GAClF,MAAU,MAAM,kCAAkC;IACpD,OAAOG;GACT;EACF,CA8BS;EAAe,WA7BNE,EAAY;GAC5B,YAAY,OAAO,MAAsD;IAKvE,IAAMD,KAAM,MAJWV,EAAO,OAAoD;KAChF,UAAUH;KACV,WAAWe;IACb,CAAC,EAAA,CACoB,MAAM;IAC3B,IACE,CAACF,KACDA,EAAI,gBAAgBJ,KACpBI,EAAI,YAAYE,EAAM,WACtBF,EAAI,kBAAkBE,EAAM,eAE5B,MAAU,MAAM,iCAAiC;IACnD,OAAOF;GACT;GACA,iBAAiBR,EAAM,kBAAkB,EAAE,UAAUG,EAAI,CAAC;EAC5D,CAYwB;EAAW,SAXnBM,EAAY;GAC1B,YAAY,OAAO,MAAe;IAKhC,IAAI,EAAC,MAJkBX,EAAO,OAA6C;KACzE,UAAUF;KACV,WAAW,EAAE,MAAG;IAClB,CAAC,EAAA,CACa,MAAM,yBAClB,MAAU,MAAM,gCAAgC;GACpD;GACA,iBAAiBI,EAAM,kBAAkB,EAAE,UAAUG,EAAI,CAAC;EAC5D,CACmC;CAAQ;AAC7C"}
@@ -0,0 +1,17 @@
1
+ export interface AssistantRuntimeConfiguration {
2
+ agentId: string;
3
+ courseId: string | null;
4
+ inferenceWorkflowId: string;
5
+ recoveryWorkflowId: string;
6
+ recoveryScheduleId: string;
7
+ ingestionWorkflowId: string | null;
8
+ protocolVersion: number;
9
+ ready: boolean;
10
+ }
11
+ export declare function useAssistantRuntimeSetup(agentId: string): {
12
+ connections: import('@tanstack/react-query').UseQueryResult<{
13
+ id: string;
14
+ name: string;
15
+ }[], Error>;
16
+ configure: import('@tanstack/react-query').UseMutationResult<AssistantRuntimeConfiguration, Error, string, unknown>;
17
+ };
@@ -2,7 +2,7 @@ import { useBotlit as e } from "../providers/BotlitProvider.js";
2
2
  import { gql as t } from "@apollo/client";
3
3
  import { useGatewayClient as n } from "@burdenoff/fe-libs/shared/graphql";
4
4
  import { useMutation as r, useQuery as i } from "@tanstack/react-query";
5
- //#region src/botlit/hooks/useAssistantRuntimeSetup.ts
5
+ // src/botlit/hooks/useAssistantRuntimeSetup.ts
6
6
  var a = t`
7
7
  query AssistantWorkflowProvider {
8
8
  getProviderByKey(key: "botmanor-runtime") {
@@ -106,7 +106,6 @@ function c(t) {
106
106
  })
107
107
  };
108
108
  }
109
- //#endregion
110
109
  export { c as useAssistantRuntimeSetup };
111
110
 
112
111
  //# sourceMappingURL=useAssistantRuntimeSetup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantRuntimeSetup.js","names":[],"sources":["../../../src/botlit/hooks/useAssistantRuntimeSetup.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\nimport { useBotlit } from '../providers/BotlitProvider';\n\ninterface Connection {\n id: string;\n name: string;\n workspaceId: string | null;\n status: string;\n provider: { key: string };\n authMethod: { authType: string; isEnabled: boolean; isConfigured: boolean } | null;\n}\nexport interface AssistantRuntimeConfiguration {\n agentId: string;\n courseId: string | null;\n inferenceWorkflowId: string;\n recoveryWorkflowId: string;\n recoveryScheduleId: string;\n ingestionWorkflowId: string | null;\n protocolVersion: number;\n ready: boolean;\n}\nconst PROVIDER = gql`\n query AssistantWorkflowProvider {\n getProviderByKey(key: \"botmanor-runtime\") {\n id\n }\n }\n`;\nconst CONNECTIONS = gql`\n query AssistantWorkflowConnections($providerId: ID!, $offset: Int!) {\n getConnections(\n filter: { providerId: $providerId, status: ACTIVE }\n pagination: { limit: 100, offset: $offset }\n ) {\n hasMore\n items {\n id\n name\n workspaceId\n status\n provider {\n key\n }\n authMethod {\n authType\n isEnabled\n isConfigured\n }\n }\n }\n }\n`;\nconst CONFIGURE = gql`\n mutation ConfigureAssistantRuntime($agentId: ID!, $connectionId: ID!) {\n configureAssistantRuntime(agentId: $agentId, connectionId: $connectionId) {\n agentId\n courseId\n inferenceWorkflowId\n recoveryWorkflowId\n recoveryScheduleId\n ingestionWorkflowId\n protocolVersion\n ready\n }\n }\n`;\n\nexport function useAssistantRuntimeSetup(agentId: string) {\n const client = useGatewayClient('workspace');\n const { workspaceId, currentUser } = useBotlit();\n const connections = useQuery({\n queryKey: ['botmanor-assistant-connections', workspaceId, currentUser?.id],\n enabled: Boolean(workspaceId && currentUser?.id),\n retry: false,\n queryFn: async () => {\n const provider = await client.query<{ getProviderByKey: { id: string } | null }>({\n query: PROVIDER,\n fetchPolicy: 'no-cache',\n });\n const providerId = provider.data?.getProviderByKey?.id;\n if (!providerId) return [];\n const result: Array<{ id: string; name: string }> = [];\n for (let offset = 0; offset < 500; offset += 100) {\n const page = await client.query<{\n getConnections: { hasMore: boolean; items: Connection[] };\n }>({\n query: CONNECTIONS,\n variables: { providerId, offset },\n fetchPolicy: 'no-cache',\n });\n const data = page.data?.getConnections;\n if (!data || data.items.length > 100) throw new Error('Connections unavailable');\n for (const connection of data.items) {\n if (\n connection.workspaceId === workspaceId &&\n connection.status === 'ACTIVE' &&\n connection.provider.key === 'botmanor-runtime' &&\n connection.authMethod?.authType === 'WORKSPACE_APP_TOKEN' &&\n connection.authMethod.isEnabled &&\n connection.authMethod.isConfigured\n )\n result.push({ id: connection.id, name: connection.name });\n }\n if (!data.hasMore) return result;\n }\n throw new Error('Connection list exceeds the supported limit');\n },\n });\n const configure = useMutation({\n mutationKey: ['botmanor-assistant-runtime', workspaceId, currentUser?.id, agentId],\n retry: false,\n mutationFn: async (connectionId: string) => {\n if (!workspaceId || !currentUser?.id) throw new Error('Sign in to configure an assistant');\n const result = await client.mutate<{\n configureAssistantRuntime: AssistantRuntimeConfiguration;\n }>({\n mutation: CONFIGURE,\n variables: { agentId, connectionId },\n });\n const configured = result.data?.configureAssistantRuntime;\n if (\n !configured ||\n configured.agentId !== agentId ||\n configured.protocolVersion !== 2 ||\n !configured.inferenceWorkflowId ||\n !configured.recoveryWorkflowId ||\n !configured.recoveryScheduleId ||\n typeof configured.ready !== 'boolean'\n )\n throw new Error('Runtime configuration unavailable');\n return configured;\n },\n });\n return { connections, configure };\n}\n"],"mappings":";;;;;AAuBA,IAAM,IAAW,CAAG;;;;;;GAOd,IAAc,CAAG;;;;;;;;;;;;;;;;;;;;;;;GAwBjB,IAAY,CAAG;;;;;;;;;;;;;;AAerB,SAAgB,EAAyB,GAAiB;CACxD,IAAM,IAAS,EAAiB,YAAY,EACtC,EAAE,gBAAa,mBAAgB,GAAW;AAgEhD,QAAO;EAAE,aA/DW,EAAS;GAC3B,UAAU;IAAC;IAAkC;IAAa,GAAa;IAAG;GAC1E,SAAS,GAAQ,KAAe,GAAa;GAC7C,OAAO;GACP,SAAS,YAAY;IAKnB,IAAM,KAJW,MAAM,EAAO,MAAmD;KAC/E,OAAO;KACP,aAAa;KACd,CAAC,EAC0B,MAAM,kBAAkB;AACpD,QAAI,CAAC,EAAY,QAAO,EAAE;IAC1B,IAAM,IAA8C,EAAE;AACtD,SAAK,IAAI,IAAS,GAAG,IAAS,KAAK,KAAU,KAAK;KAQhD,IAAM,KAPO,MAAM,EAAO,MAEvB;MACD,OAAO;MACP,WAAW;OAAE;OAAY;OAAQ;MACjC,aAAa;MACd,CAAC,EACgB,MAAM;AACxB,SAAI,CAAC,KAAQ,EAAK,MAAM,SAAS,IAAK,OAAU,MAAM,0BAA0B;AAChF,UAAK,IAAM,KAAc,EAAK,MAC5B,CACE,EAAW,gBAAgB,KAC3B,EAAW,WAAW,YACtB,EAAW,SAAS,QAAQ,sBAC5B,EAAW,YAAY,aAAa,yBACpC,EAAW,WAAW,aACtB,EAAW,WAAW,gBAEtB,EAAO,KAAK;MAAE,IAAI,EAAW;MAAI,MAAM,EAAW;MAAM,CAAC;AAE7D,SAAI,CAAC,EAAK,QAAS,QAAO;;AAE5B,UAAU,MAAM,8CAA8C;;GAEjE,CAAC;EA0BoB,WAzBJ,EAAY;GAC5B,aAAa;IAAC;IAA8B;IAAa,GAAa;IAAI;IAAQ;GAClF,OAAO;GACP,YAAY,OAAO,MAAyB;AAC1C,QAAI,CAAC,KAAe,CAAC,GAAa,GAAI,OAAU,MAAM,oCAAoC;IAO1F,IAAM,KANS,MAAM,EAAO,OAEzB;KACD,UAAU;KACV,WAAW;MAAE;MAAS;MAAc;KACrC,CAAC,EACwB,MAAM;AAChC,QACE,CAAC,KACD,EAAW,YAAY,KACvB,EAAW,oBAAoB,KAC/B,CAAC,EAAW,uBACZ,CAAC,EAAW,sBACZ,CAAC,EAAW,sBACZ,OAAO,EAAW,SAAU,UAE5B,OAAU,MAAM,oCAAoC;AACtD,WAAO;;GAEV,CAAC;EAC+B"}
1
+ {"version":3,"file":"useAssistantRuntimeSetup.js","names":["PROVIDER","CONNECTIONS","CONFIGURE","useAssistantRuntimeSetup","client","useGatewayClient","useBotlit","useQuery","workspaceId","currentUser","providerId","result","offset","data","connection","useMutation","agentId","configured"],"sources":["../../../src/botlit/hooks/useAssistantRuntimeSetup.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\nimport { useBotlit } from '../providers/BotlitProvider';\n\ninterface Connection {\n id: string;\n name: string;\n workspaceId: string | null;\n status: string;\n provider: { key: string };\n authMethod: { authType: string; isEnabled: boolean; isConfigured: boolean } | null;\n}\nexport interface AssistantRuntimeConfiguration {\n agentId: string;\n courseId: string | null;\n inferenceWorkflowId: string;\n recoveryWorkflowId: string;\n recoveryScheduleId: string;\n ingestionWorkflowId: string | null;\n protocolVersion: number;\n ready: boolean;\n}\nconst PROVIDER = gql`\n query AssistantWorkflowProvider {\n getProviderByKey(key: \"botmanor-runtime\") {\n id\n }\n }\n`;\nconst CONNECTIONS = gql`\n query AssistantWorkflowConnections($providerId: ID!, $offset: Int!) {\n getConnections(\n filter: { providerId: $providerId, status: ACTIVE }\n pagination: { limit: 100, offset: $offset }\n ) {\n hasMore\n items {\n id\n name\n workspaceId\n status\n provider {\n key\n }\n authMethod {\n authType\n isEnabled\n isConfigured\n }\n }\n }\n }\n`;\nconst CONFIGURE = gql`\n mutation ConfigureAssistantRuntime($agentId: ID!, $connectionId: ID!) {\n configureAssistantRuntime(agentId: $agentId, connectionId: $connectionId) {\n agentId\n courseId\n inferenceWorkflowId\n recoveryWorkflowId\n recoveryScheduleId\n ingestionWorkflowId\n protocolVersion\n ready\n }\n }\n`;\n\nexport function useAssistantRuntimeSetup(agentId: string) {\n const client = useGatewayClient('workspace');\n const { workspaceId, currentUser } = useBotlit();\n const connections = useQuery({\n queryKey: ['botmanor-assistant-connections', workspaceId, currentUser?.id],\n enabled: Boolean(workspaceId && currentUser?.id),\n retry: false,\n queryFn: async () => {\n const provider = await client.query<{ getProviderByKey: { id: string } | null }>({\n query: PROVIDER,\n fetchPolicy: 'no-cache',\n });\n const providerId = provider.data?.getProviderByKey?.id;\n if (!providerId) return [];\n const result: Array<{ id: string; name: string }> = [];\n for (let offset = 0; offset < 500; offset += 100) {\n const page = await client.query<{\n getConnections: { hasMore: boolean; items: Connection[] };\n }>({\n query: CONNECTIONS,\n variables: { providerId, offset },\n fetchPolicy: 'no-cache',\n });\n const data = page.data?.getConnections;\n if (!data || data.items.length > 100) throw new Error('Connections unavailable');\n for (const connection of data.items) {\n if (\n connection.workspaceId === workspaceId &&\n connection.status === 'ACTIVE' &&\n connection.provider.key === 'botmanor-runtime' &&\n connection.authMethod?.authType === 'WORKSPACE_APP_TOKEN' &&\n connection.authMethod.isEnabled &&\n connection.authMethod.isConfigured\n )\n result.push({ id: connection.id, name: connection.name });\n }\n if (!data.hasMore) return result;\n }\n throw new Error('Connection list exceeds the supported limit');\n },\n });\n const configure = useMutation({\n mutationKey: ['botmanor-assistant-runtime', workspaceId, currentUser?.id, agentId],\n retry: false,\n mutationFn: async (connectionId: string) => {\n if (!workspaceId || !currentUser?.id) throw new Error('Sign in to configure an assistant');\n const result = await client.mutate<{\n configureAssistantRuntime: AssistantRuntimeConfiguration;\n }>({\n mutation: CONFIGURE,\n variables: { agentId, connectionId },\n });\n const configured = result.data?.configureAssistantRuntime;\n if (\n !configured ||\n configured.agentId !== agentId ||\n configured.protocolVersion !== 2 ||\n !configured.inferenceWorkflowId ||\n !configured.recoveryWorkflowId ||\n !configured.recoveryScheduleId ||\n typeof configured.ready !== 'boolean'\n )\n throw new Error('Runtime configuration unavailable');\n return configured;\n },\n });\n return { connections, configure };\n}\n"],"mappings":";;;;;AAuBA,IAAMA,IAAW,CAAG;;;;;;GAOdC,IAAc,CAAG;;;;;;;;;;;;;;;;;;;;;;;GAwBjBC,IAAY,CAAG;;;;;;;;;;;;;;AAerB,SAAgBC,EAAyB,GAAiB;CACxD,IAAMC,IAASC,EAAiB,WAAW,GACrC,EAAE,gBAAa,mBAAgBC,EAAU;CAgE/C,OAAO;EAAE,aA/DWC,EAAS;GAC3B,UAAU;IAAC;IAAkCC;IAAaC,GAAa;GAAE;GACzE,SAAS,GAAQD,KAAeC,GAAa;GAC7C,OAAO;GACP,SAAS,YAAY;IAKnB,IAAMC,KAAa,MAJIN,EAAO,MAAmD;KAC/E,OAAOJ;KACP,aAAa;IACf,CAAC,EAAA,CAC2B,MAAM,kBAAkB;IACpD,IAAI,CAACU,GAAY,OAAO,CAAC;IACzB,IAAMC,IAA8C,CAAC;IACrD,KAAK,IAAIC,IAAS,GAAGA,IAAS,KAAK,KAAU,KAAK;KAQhD,IAAMC,KAAO,MAPMT,EAAO,MAEvB;MACD,OAAOH;MACP,WAAW;OAAE;OAAY;MAAO;MAChC,aAAa;KACf,CAAC,EAAA,CACiB,MAAM;KACxB,IAAI,CAACY,KAAQA,EAAK,MAAM,SAAS,KAAK,MAAU,MAAM,yBAAyB;KAC/E,KAAK,IAAMC,KAAcD,EAAK,OAC5B,AACEC,EAAW,gBAAgBN,KAC3BM,EAAW,WAAW,YACtBA,EAAW,SAAS,QAAQ,sBAC5BA,EAAW,YAAY,aAAa,yBACpCA,EAAW,WAAW,aACtBA,EAAW,WAAW,gBAEtBH,EAAO,KAAK;MAAE,IAAIG,EAAW;MAAI,MAAMA,EAAW;KAAK,CAAC;KAE5D,IAAI,CAACD,EAAK,SAAS,OAAOF;IAC5B;IACA,MAAU,MAAM,6CAA6C;GAC/D;EACF,CA0BS;EAAa,WAzBJI,EAAY;GAC5B,aAAa;IAAC;IAA8BP;IAAaC,GAAa;IAAIO;GAAO;GACjF,OAAO;GACP,YAAY,OAAO,MAAyB;IAC1C,IAAI,CAACR,KAAe,CAACC,GAAa,IAAI,MAAU,MAAM,mCAAmC;IAOzF,IAAMQ,KAAa,MANEb,EAAO,OAEzB;KACD,UAAUF;KACV,WAAW;MAAE;MAAS;KAAa;IACrC,CAAC,EAAA,CACyB,MAAM;IAChC,IACE,CAACe,KACDA,EAAW,YAAYD,KACvBC,EAAW,oBAAoB,KAC/B,CAACA,EAAW,uBACZ,CAACA,EAAW,sBACZ,CAACA,EAAW,sBACZ,OAAOA,EAAW,SAAU,WAE5B,MAAU,MAAM,mCAAmC;IACrD,OAAOA;GACT;EACF,CACsB;CAAU;AAClC"}
@@ -0,0 +1,18 @@
1
+ export interface AssistantWebsiteInstallation {
2
+ id: string;
3
+ workspaceId: string;
4
+ agentId: string;
5
+ name: string;
6
+ allowedOrigins: string[];
7
+ approvedKnowledgeBaseIds: string[];
8
+ enabled: boolean;
9
+ }
10
+ export declare function useAssistantWebsites(agentId: string): {
11
+ installations: import('@tanstack/react-query').UseQueryResult<AssistantWebsiteInstallation[], Error>;
12
+ publish: import('@tanstack/react-query').UseMutationResult<AssistantWebsiteInstallation, Error, {
13
+ name: string;
14
+ allowedOrigins: string[];
15
+ approvedKnowledgeBaseIds: string[];
16
+ }, unknown>;
17
+ disable: import('@tanstack/react-query').UseMutationResult<void, Error, string, unknown>;
18
+ };
@@ -2,7 +2,7 @@ import { useBotlit as e } from "../providers/BotlitProvider.js";
2
2
  import { gql as t } from "@apollo/client";
3
3
  import { useGatewayClient as n } from "@burdenoff/fe-libs/shared/graphql";
4
4
  import { useMutation as r, useQuery as i, useQueryClient as a } from "@tanstack/react-query";
5
- //#region src/botlit/hooks/useAssistantWebsites.ts
5
+ // src/botlit/hooks/useAssistantWebsites.ts
6
6
  var o = t`
7
7
  query AssistantWebsites($agentId: ID!) {
8
8
  assistantWebsiteInstallations(agentId: $agentId) {
@@ -79,7 +79,6 @@ function l(t) {
79
79
  })
80
80
  };
81
81
  }
82
- //#endregion
83
82
  export { l as useAssistantWebsites };
84
83
 
85
84
  //# sourceMappingURL=useAssistantWebsites.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantWebsites.js","names":[],"sources":["../../../src/botlit/hooks/useAssistantWebsites.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\nimport { useBotlit } from '../providers/BotlitProvider';\n\nexport interface AssistantWebsiteInstallation {\n id: string;\n workspaceId: string;\n agentId: string;\n name: string;\n allowedOrigins: string[];\n approvedKnowledgeBaseIds: string[];\n enabled: boolean;\n}\nconst LIST = gql`\n query AssistantWebsites($agentId: ID!) {\n assistantWebsiteInstallations(agentId: $agentId) {\n id\n workspaceId\n agentId\n name\n allowedOrigins\n approvedKnowledgeBaseIds\n enabled\n }\n }\n`;\nconst PUBLISH = gql`\n mutation PublishAssistantWebsite($input: PublishAssistantWebsiteInput!) {\n publishAssistantWebsite(input: $input) {\n id\n workspaceId\n agentId\n name\n allowedOrigins\n approvedKnowledgeBaseIds\n enabled\n }\n }\n`;\nconst DISABLE = gql`\n mutation DisableAssistantWebsite($id: ID!) {\n disableAssistantWebsite(id: $id)\n }\n`;\n\nexport function useAssistantWebsites(agentId: string) {\n const client = useGatewayClient('workspace'),\n cache = useQueryClient(),\n { workspaceId, currentUser } = useBotlit();\n const key = ['botmanor-assistant-websites', workspaceId, currentUser?.id, agentId];\n const installations = useQuery({\n queryKey: key,\n enabled: Boolean(workspaceId && currentUser?.id),\n retry: false,\n queryFn: async () => {\n const response = await client.query<{\n assistantWebsiteInstallations: AssistantWebsiteInstallation[];\n }>({ query: LIST, variables: { agentId }, fetchPolicy: 'no-cache' });\n const rows = response.data?.assistantWebsiteInstallations;\n if (\n !rows ||\n rows.length > 100 ||\n rows.some((row) => row.workspaceId !== workspaceId || row.agentId !== agentId)\n )\n throw new Error('Website publications unavailable');\n return rows;\n },\n });\n const publish = useMutation({\n mutationFn: async (input: {\n name: string;\n allowedOrigins: string[];\n approvedKnowledgeBaseIds: string[];\n }) => {\n const response = await client.mutate<{\n publishAssistantWebsite: AssistantWebsiteInstallation;\n }>({ mutation: PUBLISH, variables: { input: { ...input, agentId } } });\n const row = response.data?.publishAssistantWebsite;\n if (!row || row.workspaceId !== workspaceId || row.agentId !== agentId)\n throw new Error('Website publication unavailable');\n return row;\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n const disable = useMutation({\n mutationFn: async (id: string) => {\n const response = await client.mutate<{ disableAssistantWebsite: boolean }>({\n mutation: DISABLE,\n variables: { id },\n });\n if (response.data?.disableAssistantWebsite !== true)\n throw new Error('Website revocation unavailable');\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n return { installations, publish, disable };\n}\n"],"mappings":";;;;;AAcA,IAAM,IAAO,CAAG;;;;;;;;;;;;GAaV,IAAU,CAAG;;;;;;;;;;;;GAab,IAAU,CAAG;;;;;AAMnB,SAAgB,EAAqB,GAAiB;CACpD,IAAM,IAAS,EAAiB,YAAY,EAC1C,IAAQ,GAAgB,EACxB,EAAE,gBAAa,mBAAgB,GAAW,EACtC,IAAM;EAAC;EAA+B;EAAa,GAAa;EAAI;EAAQ;AA8ClF,QAAO;EAAE,eA7Ca,EAAS;GAC7B,UAAU;GACV,SAAS,GAAQ,KAAe,GAAa;GAC7C,OAAO;GACP,SAAS,YAAY;IAInB,IAAM,KAHW,MAAM,EAAO,MAE3B;KAAE,OAAO;KAAM,WAAW,EAAE,YAAS;KAAE,aAAa;KAAY,CAAC,EAC9C,MAAM;AAC5B,QACE,CAAC,KACD,EAAK,SAAS,OACd,EAAK,MAAM,MAAQ,EAAI,gBAAgB,KAAe,EAAI,YAAY,EAAQ,CAE9E,OAAU,MAAM,mCAAmC;AACrD,WAAO;;GAEV,CAAC;EA4BsB,SA3BR,EAAY;GAC1B,YAAY,OAAO,MAIb;IAIJ,IAAM,KAHW,MAAM,EAAO,OAE3B;KAAE,UAAU;KAAS,WAAW,EAAE,OAAO;MAAE,GAAG;MAAO;MAAS,EAAE;KAAE,CAAC,EACjD,MAAM;AAC3B,QAAI,CAAC,KAAO,EAAI,gBAAgB,KAAe,EAAI,YAAY,EAC7D,OAAU,MAAM,kCAAkC;AACpD,WAAO;;GAET,iBAAiB,EAAM,kBAAkB,EAAE,UAAU,GAAK,CAAC;GAC5D,CAAC;EAY+B,SAXjB,EAAY;GAC1B,YAAY,OAAO,MAAe;AAKhC,SAJiB,MAAM,EAAO,OAA6C;KACzE,UAAU;KACV,WAAW,EAAE,OAAI;KAClB,CAAC,EACW,MAAM,4BAA4B,GAC7C,OAAU,MAAM,iCAAiC;;GAErD,iBAAiB,EAAM,kBAAkB,EAAE,UAAU,GAAK,CAAC;GAC5D,CAAC;EACwC"}
1
+ {"version":3,"file":"useAssistantWebsites.js","names":["LIST","PUBLISH","DISABLE","useAssistantWebsites","client","useGatewayClient","cache","useQueryClient","useBotlit","key","workspaceId","currentUser","agentId","useQuery","rows","row","useMutation","input"],"sources":["../../../src/botlit/hooks/useAssistantWebsites.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\nimport { useBotlit } from '../providers/BotlitProvider';\n\nexport interface AssistantWebsiteInstallation {\n id: string;\n workspaceId: string;\n agentId: string;\n name: string;\n allowedOrigins: string[];\n approvedKnowledgeBaseIds: string[];\n enabled: boolean;\n}\nconst LIST = gql`\n query AssistantWebsites($agentId: ID!) {\n assistantWebsiteInstallations(agentId: $agentId) {\n id\n workspaceId\n agentId\n name\n allowedOrigins\n approvedKnowledgeBaseIds\n enabled\n }\n }\n`;\nconst PUBLISH = gql`\n mutation PublishAssistantWebsite($input: PublishAssistantWebsiteInput!) {\n publishAssistantWebsite(input: $input) {\n id\n workspaceId\n agentId\n name\n allowedOrigins\n approvedKnowledgeBaseIds\n enabled\n }\n }\n`;\nconst DISABLE = gql`\n mutation DisableAssistantWebsite($id: ID!) {\n disableAssistantWebsite(id: $id)\n }\n`;\n\nexport function useAssistantWebsites(agentId: string) {\n const client = useGatewayClient('workspace'),\n cache = useQueryClient(),\n { workspaceId, currentUser } = useBotlit();\n const key = ['botmanor-assistant-websites', workspaceId, currentUser?.id, agentId];\n const installations = useQuery({\n queryKey: key,\n enabled: Boolean(workspaceId && currentUser?.id),\n retry: false,\n queryFn: async () => {\n const response = await client.query<{\n assistantWebsiteInstallations: AssistantWebsiteInstallation[];\n }>({ query: LIST, variables: { agentId }, fetchPolicy: 'no-cache' });\n const rows = response.data?.assistantWebsiteInstallations;\n if (\n !rows ||\n rows.length > 100 ||\n rows.some((row) => row.workspaceId !== workspaceId || row.agentId !== agentId)\n )\n throw new Error('Website publications unavailable');\n return rows;\n },\n });\n const publish = useMutation({\n mutationFn: async (input: {\n name: string;\n allowedOrigins: string[];\n approvedKnowledgeBaseIds: string[];\n }) => {\n const response = await client.mutate<{\n publishAssistantWebsite: AssistantWebsiteInstallation;\n }>({ mutation: PUBLISH, variables: { input: { ...input, agentId } } });\n const row = response.data?.publishAssistantWebsite;\n if (!row || row.workspaceId !== workspaceId || row.agentId !== agentId)\n throw new Error('Website publication unavailable');\n return row;\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n const disable = useMutation({\n mutationFn: async (id: string) => {\n const response = await client.mutate<{ disableAssistantWebsite: boolean }>({\n mutation: DISABLE,\n variables: { id },\n });\n if (response.data?.disableAssistantWebsite !== true)\n throw new Error('Website revocation unavailable');\n },\n onSuccess: () => cache.invalidateQueries({ queryKey: key }),\n });\n return { installations, publish, disable };\n}\n"],"mappings":";;;;;AAcA,IAAMA,IAAO,CAAG;;;;;;;;;;;;GAaVC,IAAU,CAAG;;;;;;;;;;;;GAabC,IAAU,CAAG;;;;;AAMnB,SAAgBC,EAAqB,GAAiB;CACpD,IAAMC,IAASC,EAAiB,WAAW,GACzCC,IAAQC,EAAe,GACvB,EAAE,gBAAa,mBAAgBC,EAAU,GACrCC,IAAM;EAAC;EAA+BC;EAAaC,GAAa;EAAIC;CAAO;CA8CjF,OAAO;EAAE,eA7CaC,EAAS;GAC7B,UAAUJ;GACV,SAAS,GAAQC,KAAeC,GAAa;GAC7C,OAAO;GACP,SAAS,YAAY;IAInB,IAAMG,KAAO,MAHUV,EAAO,MAE3B;KAAE,OAAOJ;KAAM,WAAW,EAAE,WAAQ;KAAG,aAAa;IAAW,CAAC,EAAA,CAC7C,MAAM;IAC5B,IACE,CAACc,KACDA,EAAK,SAAS,OACdA,EAAK,MAAM,MAAQC,EAAI,gBAAgBL,KAAeK,EAAI,YAAYH,CAAO,GAE7E,MAAU,MAAM,kCAAkC;IACpD,OAAOE;GACT;EACF,CA4BS;EAAe,SA3BRE,EAAY;GAC1B,YAAY,OAAO,MAIb;IAIJ,IAAMD,KAAM,MAHWX,EAAO,OAE3B;KAAE,UAAUH;KAAS,WAAW,EAAE,OAAO;MAAE,GAAGgB;MAAO;KAAQ,EAAE;IAAE,CAAC,EAAA,CAChD,MAAM;IAC3B,IAAI,CAACF,KAAOA,EAAI,gBAAgBL,KAAeK,EAAI,YAAYH,GAC7D,MAAU,MAAM,iCAAiC;IACnD,OAAOG;GACT;GACA,iBAAiBT,EAAM,kBAAkB,EAAE,UAAUG,EAAI,CAAC;EAC5D,CAYwB;EAAS,SAXjBO,EAAY;GAC1B,YAAY,OAAO,MAAe;IAKhC,KAAI,MAJmBZ,EAAO,OAA6C;KACzE,UAAUF;KACV,WAAW,EAAE,MAAG;IAClB,CAAC,EAAA,CACY,MAAM,4BAA4B,IAC7C,MAAU,MAAM,gCAAgC;GACpD;GACA,iBAAiBI,EAAM,kBAAkB,EAAE,UAAUG,EAAI,CAAC;EAC5D,CACiC;CAAQ;AAC3C"}
@@ -0,0 +1,22 @@
1
+ interface BotWorkflowDefinition {
2
+ id: string;
3
+ workflowKey: string;
4
+ version: string;
5
+ name: string;
6
+ status: string;
7
+ }
8
+ /** Product-side binding does not initialize the shared builder's SDK singleton. */
9
+ export declare function useBotWorkflowDefinition(_key: undefined, id?: string): {
10
+ workflow: BotWorkflowDefinition | null;
11
+ loading: boolean;
12
+ };
13
+ export declare function useCreateBotWorkflow(): {
14
+ createWorkflow: (input: {
15
+ workflowKey: string;
16
+ version: string;
17
+ name: string;
18
+ description?: string;
19
+ definitionJson: unknown;
20
+ }) => Promise<BotWorkflowDefinition | null>;
21
+ };
22
+ export {};
@@ -3,7 +3,7 @@ import { useCallback as t } from "react";
3
3
  import { gql as n } from "@apollo/client";
4
4
  import { useGatewayClient as r } from "@burdenoff/fe-libs/shared/graphql";
5
5
  import { useQuery as i } from "@apollo/client/react";
6
- //#region src/botlit/hooks/useBotWorkflow.ts
6
+ // src/botlit/hooks/useBotWorkflow.ts
7
7
  var a = n`
8
8
  query BotWorkflowDefinition($id: ID!) {
9
9
  workflowDefinition(id: $id) {
@@ -50,7 +50,6 @@ function c() {
50
50
  })).data?.createWorkflowDefinition ?? null;
51
51
  }, [i, n]) };
52
52
  }
53
- //#endregion
54
53
  export { s as useBotWorkflowDefinition, c as useCreateBotWorkflow };
55
54
 
56
55
  //# sourceMappingURL=useBotWorkflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBotWorkflow.js","names":[],"sources":["../../../src/botlit/hooks/useBotWorkflow.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useCallback } from 'react';\nimport { useQuery } from '@apollo/client/react';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\n\ninterface BotWorkflowDefinition {\n id: string;\n workflowKey: string;\n version: string;\n name: string;\n status: string;\n}\n\nconst GET_WORKFLOW = gql`\n query BotWorkflowDefinition($id: ID!) {\n workflowDefinition(id: $id) {\n id\n workflowKey\n version\n name\n status\n }\n }\n`;\nconst CREATE_WORKFLOW = gql`\n mutation CreateBotWorkflow($input: CreateWorkflowDefinitionInput!) {\n createWorkflowDefinition(input: $input) {\n id\n workflowKey\n version\n name\n status\n }\n }\n`;\n\n/** Product-side binding does not initialize the shared builder's SDK singleton. */\nexport function useBotWorkflowDefinition(_key: undefined, id?: string) {\n const client = useGatewayClient('workspace');\n const { data, loading } = useQuery<{ workflowDefinition: BotWorkflowDefinition | null }>(\n GET_WORKFLOW,\n {\n client: client ?? undefined,\n variables: { id },\n skip: !id || !client,\n fetchPolicy: 'network-only',\n }\n );\n return { workflow: loading ? null : (data?.workflowDefinition ?? null), loading };\n}\n\nexport function useCreateBotWorkflow() {\n const { productId } = useBotlit();\n const client = useGatewayClient('workspace');\n const createWorkflow = useCallback(\n async (input: {\n workflowKey: string;\n version: string;\n name: string;\n description?: string;\n definitionJson: unknown;\n }) => {\n if (!client) throw new Error('Workspace gateway is unavailable');\n const result = await client.mutate<{ createWorkflowDefinition: BotWorkflowDefinition }>({\n mutation: CREATE_WORKFLOW,\n variables: { input: { ...input, context: { productId: productId || 'botmanor' } } },\n });\n return result.data?.createWorkflowDefinition ?? null;\n },\n [client, productId]\n );\n return { createWorkflow };\n}\n"],"mappings":";;;;;;AAcA,IAAM,IAAe,CAAG;;;;;;;;;;GAWlB,IAAkB,CAAG;;;;;;;;;;;AAa3B,SAAgB,EAAyB,GAAiB,GAAa;CACrE,IAAM,IAAS,EAAiB,YAAY,EACtC,EAAE,SAAM,eAAY,EACxB,GACA;EACE,QAAQ,KAAU,KAAA;EAClB,WAAW,EAAE,OAAI;EACjB,MAAM,CAAC,KAAM,CAAC;EACd,aAAa;EACd,CACF;AACD,QAAO;EAAE,UAAU,IAAU,OAAQ,GAAM,sBAAsB;EAAO;EAAS;;AAGnF,SAAgB,IAAuB;CACrC,IAAM,EAAE,iBAAc,GAAW,EAC3B,IAAS,EAAiB,YAAY;AAkB5C,QAAO,EAAE,gBAjBc,EACrB,OAAO,MAMD;AACJ,MAAI,CAAC,EAAQ,OAAU,MAAM,mCAAmC;AAKhE,UAJe,MAAM,EAAO,OAA4D;GACtF,UAAU;GACV,WAAW,EAAE,OAAO;IAAE,GAAG;IAAO,SAAS,EAAE,WAAW,KAAa,YAAY;IAAE,EAAE;GACpF,CAAC,EACY,MAAM,4BAA4B;IAElD,CAAC,GAAQ,EAAU,CACpB,EACwB"}
1
+ {"version":3,"file":"useBotWorkflow.js","names":["GET_WORKFLOW","CREATE_WORKFLOW","useBotWorkflowDefinition","client","useGatewayClient","useQuery","id","loading","data","useCreateBotWorkflow","useBotlit","useCallback","input","productId"],"sources":["../../../src/botlit/hooks/useBotWorkflow.ts"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useCallback } from 'react';\nimport { useQuery } from '@apollo/client/react';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\n\ninterface BotWorkflowDefinition {\n id: string;\n workflowKey: string;\n version: string;\n name: string;\n status: string;\n}\n\nconst GET_WORKFLOW = gql`\n query BotWorkflowDefinition($id: ID!) {\n workflowDefinition(id: $id) {\n id\n workflowKey\n version\n name\n status\n }\n }\n`;\nconst CREATE_WORKFLOW = gql`\n mutation CreateBotWorkflow($input: CreateWorkflowDefinitionInput!) {\n createWorkflowDefinition(input: $input) {\n id\n workflowKey\n version\n name\n status\n }\n }\n`;\n\n/** Product-side binding does not initialize the shared builder's SDK singleton. */\nexport function useBotWorkflowDefinition(_key: undefined, id?: string) {\n const client = useGatewayClient('workspace');\n const { data, loading } = useQuery<{ workflowDefinition: BotWorkflowDefinition | null }>(\n GET_WORKFLOW,\n {\n client: client ?? undefined,\n variables: { id },\n skip: !id || !client,\n fetchPolicy: 'network-only',\n }\n );\n return { workflow: loading ? null : (data?.workflowDefinition ?? null), loading };\n}\n\nexport function useCreateBotWorkflow() {\n const { productId } = useBotlit();\n const client = useGatewayClient('workspace');\n const createWorkflow = useCallback(\n async (input: {\n workflowKey: string;\n version: string;\n name: string;\n description?: string;\n definitionJson: unknown;\n }) => {\n if (!client) throw new Error('Workspace gateway is unavailable');\n const result = await client.mutate<{ createWorkflowDefinition: BotWorkflowDefinition }>({\n mutation: CREATE_WORKFLOW,\n variables: { input: { ...input, context: { productId: productId || 'botmanor' } } },\n });\n return result.data?.createWorkflowDefinition ?? null;\n },\n [client, productId]\n );\n return { createWorkflow };\n}\n"],"mappings":";;;;;;AAcA,IAAMA,IAAe,CAAG;;;;;;;;;;GAWlBC,IAAkB,CAAG;;;;;;;;;;;AAa3B,SAAgBC,EAAyB,GAAiB,GAAa;CACrE,IAAMC,IAASC,EAAiB,WAAW,GACrC,EAAE,SAAM,eAAYC,EACxBL,GACA;EACE,QAAQG,KAAU,KAAA;EAClB,WAAW,EAAE,MAAG;EAChB,MAAM,CAACG,KAAM,CAACH;EACd,aAAa;CACf,CACF;CACA,OAAO;EAAE,UAAUI,IAAU,OAAQC,GAAM,sBAAsB;EAAO;CAAQ;AAClF;AAEA,SAAgBC,IAAuB;CACrC,IAAM,EAAE,iBAAcC,EAAU,GAC1BP,IAASC,EAAiB,WAAW;CAkB3C,OAAO,EAAE,gBAjBcO,EACrB,OAAO,MAMD;EACJ,IAAI,CAACR,GAAQ,MAAU,MAAM,kCAAkC;EAK/D,QAAO,MAJcA,EAAO,OAA4D;GACtF,UAAUF;GACV,WAAW,EAAE,OAAO;IAAE,GAAGW;IAAO,SAAS,EAAE,WAAWC,KAAa,WAAW;GAAE,EAAE;EACpF,CAAC,EAAA,CACa,MAAM,4BAA4B;CAClD,GACA,CAACV,GAAQU,CAAS,CAEX,EAAe;AAC1B"}
@@ -0,0 +1,68 @@
1
+ import { UpdateBotAppInput } from '../../generated/wspace-types';
2
+ import { BaseFilter } from '../types';
3
+ import { GraphQLInput } from './internal/mutationInput';
4
+ export interface BotAppRecord {
5
+ id: string;
6
+ name: string;
7
+ slug: string;
8
+ description?: string | null;
9
+ icon?: string | null;
10
+ type: string;
11
+ status: string;
12
+ visibility?: string | null;
13
+ routingStrategy?: string | null;
14
+ defaultAgentId?: string | null;
15
+ welcomeMessage?: string | null;
16
+ fallbackMessage?: string | null;
17
+ /** Bound FluidGrids workflow definition id — the bot's designed behaviour. */
18
+ workflowId?: string | null;
19
+ executionCount?: number | null;
20
+ lastExecutedAt?: string | null;
21
+ tagIds?: string[] | null;
22
+ createdAt?: string | null;
23
+ updatedAt?: string | null;
24
+ createdById?: string | null;
25
+ updatedById?: string | null;
26
+ workspaceId?: string | null;
27
+ }
28
+ interface BotMutationState<T> {
29
+ data: T | undefined;
30
+ loading: boolean;
31
+ error: Error | undefined;
32
+ }
33
+ interface CreateBotInput {
34
+ workspaceId: string;
35
+ name: string;
36
+ slug?: string;
37
+ type: string;
38
+ routingStrategy?: string;
39
+ description?: string;
40
+ icon?: string;
41
+ }
42
+ interface UpdateBotInput {
43
+ botId: string;
44
+ input: GraphQLInput<UpdateBotAppInput>;
45
+ }
46
+ export declare const botKeys: {
47
+ all: readonly ["bots"];
48
+ lists: () => readonly ["bots", "list"];
49
+ list: (filter?: BaseFilter) => readonly ["bots", "list", BaseFilter | undefined];
50
+ details: () => readonly ["bots", "detail"];
51
+ detail: (id: string) => readonly ["bots", "detail", string];
52
+ };
53
+ export declare function useBots(filter?: BaseFilter): {
54
+ data: BotAppRecord[];
55
+ loading: boolean;
56
+ error: Error | undefined;
57
+ refetch: () => Promise<void>;
58
+ };
59
+ export declare function useBot(botId: string | undefined): {
60
+ data: BotAppRecord | null;
61
+ loading: boolean;
62
+ error: Error | undefined;
63
+ refetch: () => Promise<void>;
64
+ };
65
+ export declare function useCreateBot(): readonly [(input: CreateBotInput) => Promise<BotAppRecord>, BotMutationState<BotAppRecord>];
66
+ export declare function useUpdateBot(): readonly [({ botId, input }: UpdateBotInput) => Promise<BotAppRecord>, BotMutationState<BotAppRecord>];
67
+ export declare function useDeleteBot(): readonly [(botId: string) => Promise<boolean>, BotMutationState<boolean>];
68
+ export {};