@burdenoff/microfe-botmanor 2026.1108.1 → 2026.1109.1

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 (334) hide show
  1. package/dist/botlit/BotlitRoutes.d.ts +2 -0
  2. package/dist/botlit/BotlitRoutes.js +24 -25
  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 +36 -0
  72. package/dist/botlit/hooks/index.js +15 -14
  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 +57 -0
  107. package/dist/botlit/hooks/useBuckets.js +38 -39
  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/useConversations.d.ts +42 -0
  113. package/dist/botlit/hooks/useConversations.js +1 -2
  114. package/dist/botlit/hooks/useConversations.js.map +1 -1
  115. package/dist/botlit/hooks/useExecutions.d.ts +87 -0
  116. package/dist/botlit/hooks/useExecutions.js +37 -37
  117. package/dist/botlit/hooks/useExecutions.js.map +1 -1
  118. package/dist/botlit/hooks/useKnowledgeBases.d.ts +79 -0
  119. package/dist/botlit/hooks/useKnowledgeBases.js +40 -39
  120. package/dist/botlit/hooks/useKnowledgeBases.js.map +1 -1
  121. package/dist/botlit/hooks/useKnowledgeSourceImports.d.ts +21 -0
  122. package/dist/botlit/hooks/useKnowledgeSourceImports.js +1 -2
  123. package/dist/botlit/hooks/useKnowledgeSourceImports.js.map +1 -1
  124. package/dist/botlit/hooks/useLLMProviders.d.ts +66 -0
  125. package/dist/botlit/hooks/useLLMProviders.js +25 -26
  126. package/dist/botlit/hooks/useLLMProviders.js.map +1 -1
  127. package/dist/botlit/hooks/useMCPServers.d.ts +71 -0
  128. package/dist/botlit/hooks/useMCPServers.js +40 -38
  129. package/dist/botlit/hooks/useMCPServers.js.map +1 -1
  130. package/dist/botlit/hooks/usePolicies.d.ts +60 -0
  131. package/dist/botlit/hooks/usePolicies.js +49 -49
  132. package/dist/botlit/hooks/usePolicies.js.map +1 -1
  133. package/dist/botlit/hooks/usePromptTemplates.d.ts +88 -0
  134. package/dist/botlit/hooks/usePromptTemplates.js +57 -57
  135. package/dist/botlit/hooks/usePromptTemplates.js.map +1 -1
  136. package/dist/botlit/hooks/useRetention.d.ts +26 -0
  137. package/dist/botlit/hooks/useRetention.js +3 -3
  138. package/dist/botlit/hooks/useRetention.js.map +1 -1
  139. package/dist/botlit/hooks/useRetrievalProfiles.d.ts +75 -0
  140. package/dist/botlit/hooks/useRetrievalProfiles.js +47 -47
  141. package/dist/botlit/hooks/useRetrievalProfiles.js.map +1 -1
  142. package/dist/botlit/hooks/useSkills.d.ts +64 -0
  143. package/dist/botlit/hooks/useSkills.js +53 -53
  144. package/dist/botlit/hooks/useSkills.js.map +1 -1
  145. package/dist/botlit/hooks/useStore.d.ts +112 -0
  146. package/dist/botlit/hooks/useStore.js +55 -55
  147. package/dist/botlit/hooks/useStore.js.map +1 -1
  148. package/dist/botlit/hooks/useUserPlatformConnection.d.ts +80 -0
  149. package/dist/botlit/hooks/useUserPlatformConnection.js +19 -19
  150. package/dist/botlit/hooks/useUserPlatformConnection.js.map +1 -1
  151. package/dist/botlit/index.d.ts +16 -0
  152. package/dist/botlit/index.js +12 -11
  153. package/dist/botlit/pages/A2AAgentDetailPage.d.ts +6 -0
  154. package/dist/botlit/pages/A2AAgentDetailPage.js +171 -178
  155. package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
  156. package/dist/botlit/pages/A2ARegistryPage.d.ts +2 -0
  157. package/dist/botlit/pages/A2ARegistryPage.js +25 -26
  158. package/dist/botlit/pages/A2ARegistryPage.js.map +1 -1
  159. package/dist/botlit/pages/AgentApprovalsPage.d.ts +2 -0
  160. package/dist/botlit/pages/AgentApprovalsPage.js +32 -33
  161. package/dist/botlit/pages/AgentApprovalsPage.js.map +1 -1
  162. package/dist/botlit/pages/AgentBuilderPage.d.ts +2 -0
  163. package/dist/botlit/pages/AgentBuilderPage.js +59 -60
  164. package/dist/botlit/pages/AgentBuilderPage.js.map +1 -1
  165. package/dist/botlit/pages/AgentDetailPage.d.ts +2 -0
  166. package/dist/botlit/pages/AgentDetailPage.js +83 -84
  167. package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
  168. package/dist/botlit/pages/AgentsListPage.d.ts +2 -0
  169. package/dist/botlit/pages/AgentsListPage.js +71 -72
  170. package/dist/botlit/pages/AgentsListPage.js.map +1 -1
  171. package/dist/botlit/pages/AiOperationsPage.d.ts +2 -0
  172. package/dist/botlit/pages/AiOperationsPage.js +52 -53
  173. package/dist/botlit/pages/AiOperationsPage.js.map +1 -1
  174. package/dist/botlit/pages/BotChannelsTab.d.ts +7 -0
  175. package/dist/botlit/pages/BotChannelsTab.js +120 -122
  176. package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
  177. package/dist/botlit/pages/BotDetailPage.d.ts +7 -0
  178. package/dist/botlit/pages/BotDetailPage.js +353 -358
  179. package/dist/botlit/pages/BotDetailPage.js.map +1 -1
  180. package/dist/botlit/pages/BotWorkflowTab.d.ts +11 -0
  181. package/dist/botlit/pages/BotWorkflowTab.js +20 -21
  182. package/dist/botlit/pages/BotWorkflowTab.js.map +1 -1
  183. package/dist/botlit/pages/BotsListPage.d.ts +2 -0
  184. package/dist/botlit/pages/BotsListPage.js +52 -53
  185. package/dist/botlit/pages/BotsListPage.js.map +1 -1
  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/ConversationDetailPage.d.ts +2 -0
  202. package/dist/botlit/pages/ConversationsPage.d.ts +2 -0
  203. package/dist/botlit/pages/DashboardPage.d.ts +2 -0
  204. package/dist/botlit/pages/DashboardPage.js +37 -38
  205. package/dist/botlit/pages/DashboardPage.js.map +1 -1
  206. package/dist/botlit/pages/ExecutionDetailPage.d.ts +2 -0
  207. package/dist/botlit/pages/ExecutionDetailPage.js +47 -48
  208. package/dist/botlit/pages/ExecutionDetailPage.js.map +1 -1
  209. package/dist/botlit/pages/ExecutionsPage.d.ts +2 -0
  210. package/dist/botlit/pages/ExecutionsPage.js +72 -70
  211. package/dist/botlit/pages/ExecutionsPage.js.map +1 -1
  212. package/dist/botlit/pages/InstalledPackagesPage.d.ts +2 -0
  213. package/dist/botlit/pages/InstalledPackagesPage.js +77 -78
  214. package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
  215. package/dist/botlit/pages/KnowledgeBaseDetailPage.d.ts +6 -0
  216. package/dist/botlit/pages/KnowledgeBaseDetailPage.js +171 -181
  217. package/dist/botlit/pages/KnowledgeBaseDetailPage.js.map +1 -1
  218. package/dist/botlit/pages/KnowledgeBasesPage.d.ts +2 -0
  219. package/dist/botlit/pages/KnowledgeBasesPage.js +30 -31
  220. package/dist/botlit/pages/KnowledgeBasesPage.js.map +1 -1
  221. package/dist/botlit/pages/MCPServerDetailPage.d.ts +6 -0
  222. package/dist/botlit/pages/MCPServerDetailPage.js +82 -83
  223. package/dist/botlit/pages/MCPServerDetailPage.js.map +1 -1
  224. package/dist/botlit/pages/MCPServersPage.d.ts +2 -0
  225. package/dist/botlit/pages/MCPServersPage.js +54 -55
  226. package/dist/botlit/pages/MCPServersPage.js.map +1 -1
  227. package/dist/botlit/pages/PoliciesPage.d.ts +2 -0
  228. package/dist/botlit/pages/PoliciesPage.js +25 -26
  229. package/dist/botlit/pages/PoliciesPage.js.map +1 -1
  230. package/dist/botlit/pages/PolicyDetailPage.d.ts +6 -0
  231. package/dist/botlit/pages/PolicyDetailPage.js +257 -259
  232. package/dist/botlit/pages/PolicyDetailPage.js.map +1 -1
  233. package/dist/botlit/pages/PromptStudioPage.d.ts +2 -0
  234. package/dist/botlit/pages/PromptStudioPage.js +35 -35
  235. package/dist/botlit/pages/PromptStudioPage.js.map +1 -1
  236. package/dist/botlit/pages/PromptTemplateDetailPage.d.ts +6 -0
  237. package/dist/botlit/pages/PromptTemplateDetailPage.js +363 -362
  238. package/dist/botlit/pages/PromptTemplateDetailPage.js.map +1 -1
  239. package/dist/botlit/pages/PromptTemplatesPage.d.ts +2 -0
  240. package/dist/botlit/pages/PromptTemplatesPage.js +26 -27
  241. package/dist/botlit/pages/PromptTemplatesPage.js.map +1 -1
  242. package/dist/botlit/pages/RetrievalProfileDetailPage.d.ts +6 -0
  243. package/dist/botlit/pages/RetrievalProfileDetailPage.js +150 -158
  244. package/dist/botlit/pages/RetrievalProfileDetailPage.js.map +1 -1
  245. package/dist/botlit/pages/RetrievalProfilesPage.d.ts +2 -0
  246. package/dist/botlit/pages/RetrievalProfilesPage.js +24 -25
  247. package/dist/botlit/pages/RetrievalProfilesPage.js.map +1 -1
  248. package/dist/botlit/pages/SettingsPage.d.ts +2 -0
  249. package/dist/botlit/pages/SettingsPage.js +124 -125
  250. package/dist/botlit/pages/SettingsPage.js.map +1 -1
  251. package/dist/botlit/pages/SkillDetailPage.d.ts +6 -0
  252. package/dist/botlit/pages/SkillDetailPage.js +216 -217
  253. package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
  254. package/dist/botlit/pages/SkillsPage.d.ts +2 -0
  255. package/dist/botlit/pages/SkillsPage.js +24 -25
  256. package/dist/botlit/pages/SkillsPage.js.map +1 -1
  257. package/dist/botlit/pages/StorePackageDetailPage.d.ts +2 -0
  258. package/dist/botlit/pages/StorePackageDetailPage.js +38 -39
  259. package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
  260. package/dist/botlit/pages/StorePage.d.ts +2 -0
  261. package/dist/botlit/pages/StorePage.js +135 -136
  262. package/dist/botlit/pages/StorePage.js.map +1 -1
  263. package/dist/botlit/pages/index.d.ts +39 -0
  264. package/dist/botlit/permissions/PermissionRequired.d.ts +20 -0
  265. package/dist/botlit/permissions/PermissionRequired.js +10 -11
  266. package/dist/botlit/permissions/PermissionRequired.js.map +1 -1
  267. package/dist/botlit/permissions/botmanorPermissions.d.ts +82 -0
  268. package/dist/botlit/permissions/botmanorPermissions.js +1 -2
  269. package/dist/botlit/permissions/botmanorPermissions.js.map +1 -1
  270. package/dist/botlit/permissions/index.d.ts +7 -0
  271. package/dist/botlit/permissions/index.js +4 -3
  272. package/dist/botlit/permissions/useBotmanorPermissions.d.ts +41 -0
  273. package/dist/botlit/permissions/useBotmanorPermissions.js +1 -2
  274. package/dist/botlit/permissions/useBotmanorPermissions.js.map +1 -1
  275. package/dist/botlit/providers/BotlitProvider.d.ts +14 -0
  276. package/dist/botlit/providers/BotlitProvider.js +3 -3
  277. package/dist/botlit/providers/BotlitProvider.js.map +1 -1
  278. package/dist/botlit/store/botlitStore.d.ts +85 -0
  279. package/dist/botlit/store/botlitStore.js +1 -2
  280. package/dist/botlit/store/botlitStore.js.map +1 -1
  281. package/dist/botlit/store/renamedKeyStorage.d.ts +13 -0
  282. package/dist/botlit/store/renamedKeyStorage.js +1 -2
  283. package/dist/botlit/store/renamedKeyStorage.js.map +1 -1
  284. package/dist/botlit/types/index.d.ts +1008 -0
  285. package/dist/botlit/utils/cn.d.ts +2 -0
  286. package/dist/botlit/utils/cn.js +1 -2
  287. package/dist/botlit/utils/cn.js.map +1 -1
  288. package/dist/botlit/utils/embedding-models.d.ts +9 -0
  289. package/dist/botlit/utils/embedding-models.js +1 -2
  290. package/dist/botlit/utils/embedding-models.js.map +1 -1
  291. package/dist/botlit/utils/errors.d.ts +19 -0
  292. package/dist/botlit/utils/errors.js +1 -2
  293. package/dist/botlit/utils/errors.js.map +1 -1
  294. package/dist/botlit/utils/formatters.d.ts +38 -0
  295. package/dist/botlit/utils/formatters.js +0 -1
  296. package/dist/botlit/utils/formatters.js.map +1 -1
  297. package/dist/botlit/utils/navigation.d.ts +19 -0
  298. package/dist/botlit/utils/navigation.js +1 -2
  299. package/dist/botlit/utils/navigation.js.map +1 -1
  300. package/dist/botlit/utils/policyConfig.d.ts +68 -0
  301. package/dist/botlit/utils/policyConfig.js +2 -3
  302. package/dist/botlit/utils/policyConfig.js.map +1 -1
  303. package/dist/botlit/utils/unions.d.ts +25 -0
  304. package/dist/botlit/utils/unions.js +1 -2
  305. package/dist/botlit/utils/unions.js.map +1 -1
  306. package/dist/dev/App.d.ts +2 -0
  307. package/dist/dev/main.d.ts +0 -0
  308. package/dist/generated/global-operations.d.ts +197 -0
  309. package/dist/generated/global-operations.js +1 -2
  310. package/dist/generated/global-operations.js.map +1 -1
  311. package/dist/generated/global-types.d.ts +27678 -0
  312. package/dist/generated/global-types.js +1 -2
  313. package/dist/generated/global-types.js.map +1 -1
  314. package/dist/generated/wspace-operations.d.ts +5489 -0
  315. package/dist/generated/wspace-operations.js +64 -60
  316. package/dist/generated/wspace-operations.js.map +1 -1
  317. package/dist/generated/wspace-types.d.ts +152017 -0
  318. package/dist/generated/wspace-types.js +1 -2
  319. package/dist/generated/wspace-types.js.map +1 -1
  320. package/dist/index.d.ts +5 -0
  321. package/dist/shared/hooks/useTr.d.ts +16 -0
  322. package/dist/shared/hooks/useTr.js +1 -2
  323. package/dist/shared/hooks/useTr.js.map +1 -1
  324. package/dist/stories/Badge.stories.d.ts +11 -0
  325. package/dist/stories/Button.stories.d.ts +13 -0
  326. package/dist/stories/EmptyState.stories.d.ts +8 -0
  327. package/dist/stories/StatusBadge.stories.d.ts +9 -0
  328. package/dist/test/fixtures.d.ts +39 -0
  329. package/dist/test/happydom.d.ts +1 -0
  330. package/dist/test/renderPage.d.ts +18 -0
  331. package/dist/test/setup.d.ts +9 -0
  332. package/dist/utils/nativeBridge.d.ts +2 -0
  333. package/dist/utils/nativeBridge.js +1 -2
  334. package/package.json +87 -60
@@ -1,26 +1,26 @@
1
1
  import { useBotlit as e } from "../providers/BotlitProvider.js";
2
- import { formatRelativeTime as t } from "../utils/formatters.js";
3
- import { BOTMANOR_PERMISSIONS as n } from "../permissions/botmanorPermissions.js";
4
- import { BotmanorPermissionGate as r } from "../permissions/useBotmanorPermissions.js";
5
- import { PageLayout as i } from "../components/PageLayout.js";
6
- import { Button as a } from "../components/Button.js";
7
- import "../permissions/index.js";
8
- import { Card as o, CardContent as s, CardDescription as c, CardHeader as l, CardTitle as u } from "../components/Card.js";
9
- import { Badge as ee, StatusBadge as te } from "../components/Badge.js";
10
- import { isNative as d, nativeImpact as ne, nativeNotify as f } from "../../utils/nativeBridge.js";
11
- import { EmptyState as re } from "../components/EmptyState.js";
2
+ import { isNative as t, nativeImpact as n, nativeNotify as r } from "../../utils/nativeBridge.js";
3
+ import { BOTMANOR_PERMISSIONS as i } from "../permissions/botmanorPermissions.js";
4
+ import { BotmanorPermissionGate as a } from "../permissions/useBotmanorPermissions.js";
5
+ import { PageLayout as o } from "../components/PageLayout.js";
6
+ import { EmptyState as ee } from "../components/EmptyState.js";
7
+ import { Card as s, CardContent as c, CardDescription as l, CardHeader as u, CardTitle as d } from "../components/Card.js";
8
+ import { Button as f } from "../components/Button.js";
12
9
  import { FormField as p, Input as m, Textarea as h } from "../components/Input.js";
13
- import { useCreatePolicy as ie, useDeletePolicy as ae, usePolicy as oe, useUpdatePolicy as se } from "../hooks/usePolicies.js";
14
- import { toUnion as g } from "../utils/unions.js";
10
+ import { Badge as te, StatusBadge as ne } from "../components/Badge.js";
15
11
  import "../hooks/index.js";
16
- import { A2A_TRUST_LEVELS as ce, CREATABLE_POLICY_TYPES as le, EMPTY_POLICY_FORM as ue, TOOL_RISK_LEVELS as de, buildPolicyConfig as fe, isCreatablePolicyType as pe, unenforcedConfigKeys as me } from "../utils/policyConfig.js";
17
- import { useState as _ } from "react";
18
- import { PagePurpose as he } from "@burdenoff/fe-libs/ui";
19
- import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
20
- import { useParams as ge } from "react-router";
21
- import { AlertTriangle as x, ArrowLeft as _e, Clock as S, Database as C, DollarSign as w, Edit as ve, FileText as T, Power as ye, Save as E, Settings as be, Shield as D, Trash2 as O, Wrench as k } from "lucide-react";
12
+ import { formatRelativeTime as g } from "../utils/formatters.js";
13
+ import { useCreatePolicy as re, useDeletePolicy as ie, usePolicy as ae, useUpdatePolicy as oe } from "../hooks/usePolicies.js";
14
+ import { toUnion as _ } from "../utils/unions.js";
15
+ import { A2A_TRUST_LEVELS as se, CREATABLE_POLICY_TYPES as ce, EMPTY_POLICY_FORM as le, TOOL_RISK_LEVELS as ue, buildPolicyConfig as de, isCreatablePolicyType as fe, unenforcedConfigKeys as pe } from "../utils/policyConfig.js";
16
+ import "../permissions/index.js";
17
+ import { useState as v } from "react";
18
+ import { PagePurpose as me } from "@burdenoff/fe-libs/ui";
19
+ import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
20
+ import { useParams as he } from "react-router";
21
+ import { AlertTriangle as S, ArrowLeft as ge, Clock as _e, Database as C, DollarSign as w, Edit as ve, FileText as T, Power as ye, Save as E, Settings as be, Shield as D, Trash2 as O, Wrench as k } from "lucide-react";
22
22
  import { toast as A } from "sonner";
23
- //#region src/botlit/pages/PolicyDetailPage.tsx
23
+ // src/botlit/pages/PolicyDetailPage.tsx
24
24
  var xe = [
25
25
  "CONTENT",
26
26
  "TOOL",
@@ -34,14 +34,14 @@ var xe = [
34
34
  "WORKSPACE",
35
35
  "PUBLIC"
36
36
  ], j = "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm", M = ({ type: e }) => ({
37
- CONTENT: /* @__PURE__ */ y(x, { size: 18 }),
38
- TOOL: /* @__PURE__ */ y(k, { size: 18 }),
39
- DATA: /* @__PURE__ */ y(C, { size: 18 }),
40
- RESPONSE: /* @__PURE__ */ y(T, { size: 18 }),
41
- BUDGET: /* @__PURE__ */ y(w, { size: 18 }),
42
- RATE_LIMIT: /* @__PURE__ */ y(S, { size: 18 }),
43
- RETENTION: /* @__PURE__ */ y(O, { size: 18 })
44
- })[e] || /* @__PURE__ */ y(D, { size: 18 }), N = {
37
+ CONTENT: /* @__PURE__ */ b(S, { size: 18 }),
38
+ TOOL: /* @__PURE__ */ b(k, { size: 18 }),
39
+ DATA: /* @__PURE__ */ b(C, { size: 18 }),
40
+ RESPONSE: /* @__PURE__ */ b(T, { size: 18 }),
41
+ BUDGET: /* @__PURE__ */ b(w, { size: 18 }),
42
+ RATE_LIMIT: /* @__PURE__ */ b(_e, { size: 18 }),
43
+ RETENTION: /* @__PURE__ */ b(O, { size: 18 })
44
+ })[e] || /* @__PURE__ */ b(D, { size: 18 }), N = {
45
45
  CONTENT: "Content Policy",
46
46
  TOOL: "Tool Policy",
47
47
  DATA: "Data Policy",
@@ -50,46 +50,45 @@ var xe = [
50
50
  RATE_LIMIT: "Rate Limit Policy",
51
51
  RETENTION: "Retention Policy"
52
52
  }, P = ({ isNew: C }) => {
53
- let { policyId: P } = ge(), { navigateTo: F } = e(), { data: I, loading: Ce, refetch: L } = oe(C ? void 0 : P), { create: we, loading: Te } = ie(), { update: R, loading: z } = se(), { remove: Ee, loading: De } = ae(), [B, V] = _(!1), [Oe, H] = _(!1), [U, W] = _({
53
+ let { policyId: P } = he(), { navigateTo: F } = e(), { data: I, loading: Ce, refetch: L } = ae(C ? void 0 : P), { create: we, loading: Te } = re(), { update: R, loading: z } = oe(), { remove: Ee, loading: De } = ie(), [B, V] = v(!1), [Oe, H] = v(!1), [U, W] = v({
54
54
  name: "",
55
55
  description: "",
56
56
  type: "CONTENT",
57
57
  visibility: "PRIVATE"
58
- }), [G, K] = _({
58
+ }), [G, K] = v({
59
59
  name: "",
60
60
  description: "",
61
61
  visibility: "PRIVATE"
62
- }), [q, ke] = _(ue), [J, Y] = _(null), X = (e, t) => {
63
- Y(null), ke((n) => ({
62
+ }), [q, ke] = v(le), [Ae, J] = v(null), Y = (e, t) => {
63
+ J(null), ke((n) => ({
64
64
  ...n,
65
65
  [e]: {
66
66
  ...n[e],
67
67
  ...t
68
68
  }
69
69
  }));
70
- }, [Ae, je] = _(!1), Me = async () => {
70
+ }, [X, je] = v(!1), Me = async () => {
71
71
  if (!U.name) return;
72
- let e = fe(U.type, q);
73
- if (!e.ok) {
74
- Y(e.error), A.error(e.error);
75
- return;
76
- }
77
- try {
78
- await we({
79
- name: U.name,
80
- description: U.description,
81
- type: U.type,
82
- visibility: U.visibility,
83
- status: Ae ? "ACTIVE" : "DRAFT",
84
- config: e.config
85
- });
86
- } catch (e) {
87
- A.error(e instanceof Error ? e.message : "Failed to create policy");
88
- return;
72
+ let e = de(U.type, q);
73
+ if (!e.ok) J(e.error), A.error(e.error);
74
+ else {
75
+ try {
76
+ await we({
77
+ name: U.name,
78
+ description: U.description,
79
+ type: U.type,
80
+ visibility: U.visibility,
81
+ status: X ? "ACTIVE" : "DRAFT",
82
+ config: e.config
83
+ });
84
+ } catch (e) {
85
+ A.error(e instanceof Error ? e.message : "Failed to create policy");
86
+ return;
87
+ }
88
+ A.success(`Policy "${U.name}" created`), F("policies");
89
89
  }
90
- A.success(`Policy "${U.name}" created`), F("policies");
91
90
  }, Ne = async () => {
92
- if (!(!P || !G.name)) {
91
+ if (P && G.name) {
93
92
  try {
94
93
  await R({
95
94
  policyId: P,
@@ -107,9 +106,9 @@ var xe = [
107
106
  }
108
107
  }, Pe = async () => {
109
108
  if (P) try {
110
- await Ee(P), d() && f("success"), F("policies");
109
+ await Ee(P), t() && r("success"), F("policies");
111
110
  } catch (e) {
112
- throw d() && f("error"), e;
111
+ throw t() && r("error"), e;
113
112
  }
114
113
  }, Z = I?.status === "ACTIVE", Fe = async () => {
115
114
  if (!P) return;
@@ -128,36 +127,36 @@ var xe = [
128
127
  I && (K({
129
128
  name: I.name,
130
129
  description: I.description || "",
131
- visibility: g(I.visibility, Se, "PRIVATE")
130
+ visibility: _(I.visibility, Se, "PRIVATE")
132
131
  }), V(!0));
133
132
  };
134
- if (C) return /* @__PURE__ */ y(i, {
133
+ if (C) return /* @__PURE__ */ b(o, {
135
134
  title: "Create Policy",
136
135
  description: "Define guardrails and constraints for your AI agents",
137
- actions: /* @__PURE__ */ b("div", {
136
+ actions: /* @__PURE__ */ x("div", {
138
137
  className: "flex gap-2",
139
- children: [/* @__PURE__ */ y(a, {
138
+ children: [/* @__PURE__ */ b(f, {
140
139
  variant: "outline",
141
140
  onClick: () => F("policies"),
142
141
  children: "Cancel"
143
- }), /* @__PURE__ */ y(a, {
144
- leftIcon: /* @__PURE__ */ y(E, { size: 16 }),
142
+ }), /* @__PURE__ */ b(f, {
143
+ leftIcon: /* @__PURE__ */ b(E, { size: 16 }),
145
144
  onClick: Me,
146
145
  isLoading: Te,
147
146
  disabled: !U.name,
148
147
  children: "Create"
149
148
  })]
150
149
  }),
151
- children: /* @__PURE__ */ b("div", {
150
+ children: /* @__PURE__ */ x("div", {
152
151
  className: "max-w-2xl space-y-6",
153
152
  children: [
154
- /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ y(u, { children: "Basic Information" }) }), /* @__PURE__ */ b(s, {
153
+ /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ b(u, { children: /* @__PURE__ */ b(d, { children: "Basic Information" }) }), /* @__PURE__ */ x(c, {
155
154
  className: "space-y-4",
156
155
  children: [
157
- /* @__PURE__ */ y(p, {
156
+ /* @__PURE__ */ b(p, {
158
157
  label: "Policy Name",
159
158
  required: !0,
160
- children: /* @__PURE__ */ y(m, {
159
+ children: /* @__PURE__ */ b(m, {
161
160
  placeholder: "e.g., Production Content Policy",
162
161
  value: U.name,
163
162
  onChange: (e) => W({
@@ -166,9 +165,9 @@ var xe = [
166
165
  })
167
166
  })
168
167
  }),
169
- /* @__PURE__ */ y(p, {
168
+ /* @__PURE__ */ b(p, {
170
169
  label: "Description",
171
- children: /* @__PURE__ */ y(h, {
170
+ children: /* @__PURE__ */ b(h, {
172
171
  placeholder: "What does this policy enforce?",
173
172
  value: U.description,
174
173
  onChange: (e) => W({
@@ -178,29 +177,29 @@ var xe = [
178
177
  rows: 3
179
178
  })
180
179
  }),
181
- /* @__PURE__ */ b("div", {
180
+ /* @__PURE__ */ x("div", {
182
181
  className: "grid grid-cols-2 gap-4",
183
- children: [/* @__PURE__ */ y(p, {
182
+ children: [/* @__PURE__ */ b(p, {
184
183
  label: "Policy Type",
185
184
  required: !0,
186
- children: /* @__PURE__ */ y("select", {
185
+ children: /* @__PURE__ */ b("select", {
187
186
  className: j,
188
187
  value: U.type,
189
188
  onChange: (e) => {
190
189
  let t = e.target.value;
191
- pe(t) && (Y(null), W({
190
+ fe(t) && (J(null), W({
192
191
  ...U,
193
192
  type: t
194
193
  }));
195
194
  },
196
- children: le.map((e) => /* @__PURE__ */ y("option", {
195
+ children: ce.map((e) => /* @__PURE__ */ b("option", {
197
196
  value: e,
198
197
  children: N[e]
199
198
  }, e))
200
199
  })
201
- }), /* @__PURE__ */ y(p, {
200
+ }), /* @__PURE__ */ b(p, {
202
201
  label: "Visibility",
203
- children: /* @__PURE__ */ b("select", {
202
+ children: /* @__PURE__ */ x("select", {
204
203
  className: "flex h-10 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm",
205
204
  value: U.visibility,
206
205
  onChange: (e) => W({
@@ -208,15 +207,15 @@ var xe = [
208
207
  visibility: e.target.value
209
208
  }),
210
209
  children: [
211
- /* @__PURE__ */ y("option", {
210
+ /* @__PURE__ */ b("option", {
212
211
  value: "PRIVATE",
213
212
  children: "Private"
214
213
  }),
215
- /* @__PURE__ */ y("option", {
214
+ /* @__PURE__ */ b("option", {
216
215
  value: "WORKSPACE",
217
216
  children: "Workspace"
218
217
  }),
219
- /* @__PURE__ */ y("option", {
218
+ /* @__PURE__ */ b("option", {
220
219
  value: "PUBLIC",
221
220
  children: "Public"
222
221
  })
@@ -226,284 +225,284 @@ var xe = [
226
225
  })
227
226
  ]
228
227
  })] }),
229
- U.type === "CONTENT" && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b(u, {
228
+ U.type === "CONTENT" && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(d, {
230
229
  className: "flex items-center gap-2",
231
- children: [/* @__PURE__ */ y(x, { size: 18 }), "Content Policy Configuration"]
232
- }), /* @__PURE__ */ y(c, { children: "Checked against every message sent to an agent and every response it gives. A blocked message is refused; a blocked response is replaced with a refusal." })] }), /* @__PURE__ */ b(s, {
230
+ children: [/* @__PURE__ */ b(S, { size: 18 }), "Content Policy Configuration"]
231
+ }), /* @__PURE__ */ b(l, { children: "Checked against every message sent to an agent and every response it gives. A blocked message is refused; a blocked response is replaced with a refusal." })] }), /* @__PURE__ */ x(c, {
233
232
  className: "space-y-4",
234
233
  children: [
235
- /* @__PURE__ */ b("div", {
234
+ /* @__PURE__ */ x("div", {
236
235
  className: "flex items-start gap-2",
237
- children: [/* @__PURE__ */ y("input", {
236
+ children: [/* @__PURE__ */ b("input", {
238
237
  type: "checkbox",
239
238
  id: "pii",
240
239
  checked: q.content.piiDetection,
241
- onChange: (e) => X("content", { piiDetection: e.target.checked }),
240
+ onChange: (e) => Y("content", { piiDetection: e.target.checked }),
242
241
  className: "mt-1 h-4 w-4"
243
- }), /* @__PURE__ */ b("label", {
242
+ }), /* @__PURE__ */ x("label", {
244
243
  htmlFor: "pii",
245
244
  className: "text-sm",
246
- children: [/* @__PURE__ */ y("span", {
245
+ children: [/* @__PURE__ */ b("span", {
247
246
  className: "font-medium",
248
247
  children: "PII Detection"
249
- }), /* @__PURE__ */ y("span", {
248
+ }), /* @__PURE__ */ b("span", {
250
249
  className: "block text-text-secondary",
251
250
  children: "Blocks text containing an email address, a US SSN or a card-number shaped digit run."
252
251
  })]
253
252
  })]
254
253
  }),
255
- /* @__PURE__ */ y(p, {
254
+ /* @__PURE__ */ b(p, {
256
255
  label: "Blocked Keywords",
257
256
  description: "Comma-separated. Case-insensitive; any occurrence blocks the text.",
258
- children: /* @__PURE__ */ y(m, {
257
+ children: /* @__PURE__ */ b(m, {
259
258
  placeholder: "e.g., internal-only, project-x",
260
259
  value: q.content.blockedKeywords,
261
- onChange: (e) => X("content", { blockedKeywords: e.target.value })
260
+ onChange: (e) => Y("content", { blockedKeywords: e.target.value })
262
261
  })
263
262
  }),
264
- /* @__PURE__ */ y(p, {
263
+ /* @__PURE__ */ b(p, {
265
264
  label: "Blocked Patterns",
266
265
  description: "One regular expression per line, matched case-insensitively.",
267
- children: /* @__PURE__ */ y(h, {
266
+ children: /* @__PURE__ */ b(h, {
268
267
  placeholder: "e.g., \\bACME-\\d{6}\\b",
269
268
  value: q.content.blockedPatterns,
270
- onChange: (e) => X("content", { blockedPatterns: e.target.value }),
269
+ onChange: (e) => Y("content", { blockedPatterns: e.target.value }),
271
270
  rows: 3
272
271
  })
273
272
  })
274
273
  ]
275
274
  })] }),
276
- U.type === "TOOL" && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b(u, {
275
+ U.type === "TOOL" && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(d, {
277
276
  className: "flex items-center gap-2",
278
- children: [/* @__PURE__ */ y(k, { size: 18 }), "Tool Policy Configuration"]
279
- }), /* @__PURE__ */ y(c, { children: "Applies to MCP tool calls made by agents and through Call Tool, and to agent delegation. Leave a field empty to not restrict it." })] }), /* @__PURE__ */ b(s, {
277
+ children: [/* @__PURE__ */ b(k, { size: 18 }), "Tool Policy Configuration"]
278
+ }), /* @__PURE__ */ b(l, { children: "Applies to MCP tool calls made by agents and through Call Tool, and to agent delegation. Leave a field empty to not restrict it." })] }), /* @__PURE__ */ x(c, {
280
279
  className: "space-y-4",
281
280
  children: [
282
- /* @__PURE__ */ y(p, {
281
+ /* @__PURE__ */ b(p, {
283
282
  label: "Allowed Tools",
284
283
  description: "Comma-separated MCP tool names. End an entry with * to allow a prefix. Empty allows every tool.",
285
- children: /* @__PURE__ */ y(m, {
284
+ children: /* @__PURE__ */ b(m, {
286
285
  placeholder: "e.g., search, read_*",
287
286
  value: q.tool.allowedTools,
288
- onChange: (e) => X("tool", { allowedTools: e.target.value })
287
+ onChange: (e) => Y("tool", { allowedTools: e.target.value })
289
288
  })
290
289
  }),
291
- /* @__PURE__ */ y(p, {
290
+ /* @__PURE__ */ b(p, {
292
291
  label: "Denied Tools",
293
292
  description: "Comma-separated MCP tool names that may never run. A deny always wins.",
294
- children: /* @__PURE__ */ y(m, {
293
+ children: /* @__PURE__ */ b(m, {
295
294
  placeholder: "e.g., delete_*, execute_code",
296
295
  value: q.tool.deniedTools,
297
- onChange: (e) => X("tool", { deniedTools: e.target.value })
296
+ onChange: (e) => Y("tool", { deniedTools: e.target.value })
298
297
  })
299
298
  }),
300
- /* @__PURE__ */ b("div", {
299
+ /* @__PURE__ */ x("div", {
301
300
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
302
- children: [/* @__PURE__ */ y(p, {
301
+ children: [/* @__PURE__ */ b(p, {
303
302
  label: "Max Tool Risk Level",
304
- children: /* @__PURE__ */ b("select", {
303
+ children: /* @__PURE__ */ x("select", {
305
304
  className: j,
306
305
  value: q.tool.maxToolRiskLevel,
307
- onChange: (e) => X("tool", { maxToolRiskLevel: e.target.value }),
308
- children: [/* @__PURE__ */ y("option", {
306
+ onChange: (e) => Y("tool", { maxToolRiskLevel: e.target.value }),
307
+ children: [/* @__PURE__ */ b("option", {
309
308
  value: "",
310
309
  children: "Any risk level"
311
- }), de.map((e) => /* @__PURE__ */ b("option", {
310
+ }), ue.map((e) => /* @__PURE__ */ x("option", {
312
311
  value: e,
313
312
  children: ["Up to ", e.toLowerCase()]
314
313
  }, e))]
315
314
  })
316
- }), /* @__PURE__ */ y(p, {
315
+ }), /* @__PURE__ */ b(p, {
317
316
  label: "Minimum A2A Trust Level",
318
317
  description: "For delegation to external registry agents.",
319
- children: /* @__PURE__ */ b("select", {
318
+ children: /* @__PURE__ */ x("select", {
320
319
  className: j,
321
320
  value: q.tool.a2aMinTrustLevel,
322
- onChange: (e) => X("tool", { a2aMinTrustLevel: e.target.value }),
323
- children: [/* @__PURE__ */ y("option", {
321
+ onChange: (e) => Y("tool", { a2aMinTrustLevel: e.target.value }),
322
+ children: [/* @__PURE__ */ b("option", {
324
323
  value: "",
325
324
  children: "Default (verified publisher)"
326
- }), ce.map((e) => /* @__PURE__ */ y("option", {
325
+ }), se.map((e) => /* @__PURE__ */ b("option", {
327
326
  value: e,
328
327
  children: e === "VERIFIED_PUBLISHER" ? "Verified publisher" : e.charAt(0) + e.slice(1).toLowerCase()
329
328
  }, e))]
330
329
  })
331
330
  })]
332
331
  }),
333
- /* @__PURE__ */ b("div", {
332
+ /* @__PURE__ */ x("div", {
334
333
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
335
- children: [/* @__PURE__ */ y(p, {
334
+ children: [/* @__PURE__ */ b(p, {
336
335
  label: "Max Tool Calls Per Execution",
337
336
  description: "Tool calls allowed in one agent turn.",
338
- children: /* @__PURE__ */ y(m, {
337
+ children: /* @__PURE__ */ b(m, {
339
338
  type: "number",
340
339
  min: 1,
341
340
  placeholder: "No limit",
342
341
  value: q.tool.maxCallsPerExecution,
343
- onChange: (e) => X("tool", { maxCallsPerExecution: e.target.value })
342
+ onChange: (e) => Y("tool", { maxCallsPerExecution: e.target.value })
344
343
  })
345
- }), /* @__PURE__ */ y(p, {
344
+ }), /* @__PURE__ */ b(p, {
346
345
  label: "Tool Call Timeout (seconds)",
347
346
  description: "Can only shorten the platform's own timeout.",
348
- children: /* @__PURE__ */ y(m, {
347
+ children: /* @__PURE__ */ b(m, {
349
348
  type: "number",
350
349
  min: 1,
351
350
  placeholder: "Platform default",
352
351
  value: q.tool.timeoutSeconds,
353
- onChange: (e) => X("tool", { timeoutSeconds: e.target.value })
352
+ onChange: (e) => Y("tool", { timeoutSeconds: e.target.value })
354
353
  })
355
354
  })]
356
355
  })
357
356
  ]
358
357
  })] }),
359
- U.type === "BUDGET" && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b(u, {
358
+ U.type === "BUDGET" && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(d, {
360
359
  className: "flex items-center gap-2",
361
- children: [/* @__PURE__ */ y(w, { size: 18 }), "Budget Policy Configuration"]
362
- }), /* @__PURE__ */ y(c, { children: "Token budgets apply per agent. Leave a field empty to not restrict it." })] }), /* @__PURE__ */ y(s, {
360
+ children: [/* @__PURE__ */ b(w, { size: 18 }), "Budget Policy Configuration"]
361
+ }), /* @__PURE__ */ b(l, { children: "Token budgets apply per agent. Leave a field empty to not restrict it." })] }), /* @__PURE__ */ b(c, {
363
362
  className: "space-y-4",
364
- children: /* @__PURE__ */ b("div", {
363
+ children: /* @__PURE__ */ x("div", {
365
364
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
366
- children: [/* @__PURE__ */ y(p, {
365
+ children: [/* @__PURE__ */ b(p, {
367
366
  label: "Max Tokens Per Day",
368
367
  description: "An agent that has used this many tokens today (UTC) is refused.",
369
- children: /* @__PURE__ */ y(m, {
368
+ children: /* @__PURE__ */ b(m, {
370
369
  type: "number",
371
370
  min: 1,
372
371
  placeholder: "No limit",
373
372
  value: q.budget.maxTokensPerDay,
374
- onChange: (e) => X("budget", { maxTokensPerDay: e.target.value })
373
+ onChange: (e) => Y("budget", { maxTokensPerDay: e.target.value })
375
374
  })
376
- }), /* @__PURE__ */ y(p, {
375
+ }), /* @__PURE__ */ b(p, {
377
376
  label: "Max Output Tokens Per Model Call",
378
377
  description: "Lowers the agent's own max-tokens setting when it is higher.",
379
- children: /* @__PURE__ */ y(m, {
378
+ children: /* @__PURE__ */ b(m, {
380
379
  type: "number",
381
380
  min: 1,
382
381
  placeholder: "No limit",
383
382
  value: q.budget.maxTokensPerExecution,
384
- onChange: (e) => X("budget", { maxTokensPerExecution: e.target.value })
383
+ onChange: (e) => Y("budget", { maxTokensPerExecution: e.target.value })
385
384
  })
386
385
  })]
387
386
  })
388
387
  })] }),
389
- U.type === "RATE_LIMIT" && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b(u, {
388
+ U.type === "RATE_LIMIT" && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(d, {
390
389
  className: "flex items-center gap-2",
391
- children: [/* @__PURE__ */ y(S, { size: 18 }), "Rate Limit Configuration"]
392
- }), /* @__PURE__ */ y(c, { children: "Every limit is counted per agent. Leave a field empty to not restrict it." })] }), /* @__PURE__ */ y(s, {
390
+ children: [/* @__PURE__ */ b(_e, { size: 18 }), "Rate Limit Configuration"]
391
+ }), /* @__PURE__ */ b(l, { children: "Every limit is counted per agent. Leave a field empty to not restrict it." })] }), /* @__PURE__ */ b(c, {
393
392
  className: "space-y-4",
394
- children: /* @__PURE__ */ b("div", {
393
+ children: /* @__PURE__ */ x("div", {
395
394
  className: "grid grid-cols-1 sm:grid-cols-3 gap-4",
396
395
  children: [
397
- /* @__PURE__ */ y(p, {
396
+ /* @__PURE__ */ b(p, {
398
397
  label: "Requests / Minute",
399
- children: /* @__PURE__ */ y(m, {
398
+ children: /* @__PURE__ */ b(m, {
400
399
  type: "number",
401
400
  min: 1,
402
401
  placeholder: "No limit",
403
402
  value: q.rateLimit.requestsPerMinute,
404
- onChange: (e) => X("rateLimit", { requestsPerMinute: e.target.value })
403
+ onChange: (e) => Y("rateLimit", { requestsPerMinute: e.target.value })
405
404
  })
406
405
  }),
407
- /* @__PURE__ */ y(p, {
406
+ /* @__PURE__ */ b(p, {
408
407
  label: "Requests / Hour",
409
- children: /* @__PURE__ */ y(m, {
408
+ children: /* @__PURE__ */ b(m, {
410
409
  type: "number",
411
410
  min: 1,
412
411
  placeholder: "No limit",
413
412
  value: q.rateLimit.requestsPerHour,
414
- onChange: (e) => X("rateLimit", { requestsPerHour: e.target.value })
413
+ onChange: (e) => Y("rateLimit", { requestsPerHour: e.target.value })
415
414
  })
416
415
  }),
417
- /* @__PURE__ */ y(p, {
416
+ /* @__PURE__ */ b(p, {
418
417
  label: "Tokens / Minute",
419
- children: /* @__PURE__ */ y(m, {
418
+ children: /* @__PURE__ */ b(m, {
420
419
  type: "number",
421
420
  min: 1,
422
421
  placeholder: "No limit",
423
422
  value: q.rateLimit.tokensPerMinute,
424
- onChange: (e) => X("rateLimit", { tokensPerMinute: e.target.value })
423
+ onChange: (e) => Y("rateLimit", { tokensPerMinute: e.target.value })
425
424
  })
426
425
  })
427
426
  ]
428
427
  })
429
428
  })] }),
430
- U.type === "RESPONSE" && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b(u, {
429
+ U.type === "RESPONSE" && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(d, {
431
430
  className: "flex items-center gap-2",
432
- children: [/* @__PURE__ */ y(T, { size: 18 }), "Model Usage Allowlist"]
433
- }), /* @__PURE__ */ y(c, { children: "Agents in this workspace may only answer with models that match every active model policy. Leave both fields empty to allow all models." })] }), /* @__PURE__ */ b(s, {
431
+ children: [/* @__PURE__ */ b(T, { size: 18 }), "Model Usage Allowlist"]
432
+ }), /* @__PURE__ */ b(l, { children: "Agents in this workspace may only answer with models that match every active model policy. Leave both fields empty to allow all models." })] }), /* @__PURE__ */ x(c, {
434
433
  className: "space-y-4",
435
- children: [/* @__PURE__ */ y(p, {
434
+ children: [/* @__PURE__ */ b(p, {
436
435
  label: "Allowed Models",
437
436
  description: "Comma-separated model IDs. End an entry with * to allow a prefix.",
438
- children: /* @__PURE__ */ y(m, {
437
+ children: /* @__PURE__ */ b(m, {
439
438
  placeholder: "e.g., gpt-4o-mini, anthropic.claude-*",
440
439
  value: q.response.allowedModels,
441
- onChange: (e) => X("response", { allowedModels: e.target.value })
440
+ onChange: (e) => Y("response", { allowedModels: e.target.value })
442
441
  })
443
- }), /* @__PURE__ */ y(p, {
442
+ }), /* @__PURE__ */ b(p, {
444
443
  label: "Allowed Providers",
445
444
  description: "Comma-separated provider types, e.g. OPENAI, ANTHROPIC, AWS_BEDROCK.",
446
- children: /* @__PURE__ */ y(m, {
445
+ children: /* @__PURE__ */ b(m, {
447
446
  placeholder: "e.g., AWS_BEDROCK, ANTHROPIC",
448
447
  value: q.response.allowedProviders,
449
- onChange: (e) => X("response", { allowedProviders: e.target.value })
448
+ onChange: (e) => Y("response", { allowedProviders: e.target.value })
450
449
  })
451
450
  })]
452
451
  })] }),
453
- U.type === "RETENTION" && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b(u, {
452
+ U.type === "RETENTION" && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(d, {
454
453
  className: "flex items-center gap-2",
455
- children: [/* @__PURE__ */ y(O, { size: 18 }), "Retention Policy Configuration"]
456
- }), /* @__PURE__ */ y(c, { children: "A scheduled job erases content older than these periods every hour. With several active retention policies the shortest period applies. Leave a field empty to keep that content for the life of the workspace." })] }), /* @__PURE__ */ y(s, {
454
+ children: [/* @__PURE__ */ b(O, { size: 18 }), "Retention Policy Configuration"]
455
+ }), /* @__PURE__ */ b(l, { children: "A scheduled job erases content older than these periods every hour. With several active retention policies the shortest period applies. Leave a field empty to keep that content for the life of the workspace." })] }), /* @__PURE__ */ b(c, {
457
456
  className: "space-y-4",
458
- children: /* @__PURE__ */ b("div", {
457
+ children: /* @__PURE__ */ x("div", {
459
458
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
460
- children: [/* @__PURE__ */ y(p, {
459
+ children: [/* @__PURE__ */ b(p, {
461
460
  label: "Execution Data Retention (days)",
462
461
  description: "Inputs, outputs and errors of finished runs and agent-to-agent messages are erased this many days after the run ended; 0 keeps none. Run metrics stay.",
463
- children: /* @__PURE__ */ y(m, {
462
+ children: /* @__PURE__ */ b(m, {
464
463
  type: "number",
465
464
  min: 0,
466
465
  max: 3650,
467
466
  placeholder: "Keep",
468
467
  value: q.retention.executionDataRetentionDays,
469
- onChange: (e) => X("retention", { executionDataRetentionDays: e.target.value })
468
+ onChange: (e) => Y("retention", { executionDataRetentionDays: e.target.value })
470
469
  })
471
- }), /* @__PURE__ */ y(p, {
470
+ }), /* @__PURE__ */ b(p, {
472
471
  label: "Conversation Retention (days)",
473
472
  description: "Assistant conversations older than this are retired and erased.",
474
- children: /* @__PURE__ */ y(m, {
473
+ children: /* @__PURE__ */ b(m, {
475
474
  type: "number",
476
475
  min: 1,
477
476
  max: 3650,
478
477
  placeholder: "Keep",
479
478
  value: q.retention.conversationRetentionDays,
480
- onChange: (e) => X("retention", { conversationRetentionDays: e.target.value })
479
+ onChange: (e) => Y("retention", { conversationRetentionDays: e.target.value })
481
480
  })
482
481
  })]
483
482
  })
484
483
  })] }),
485
- J && /* @__PURE__ */ y("p", {
484
+ Ae && /* @__PURE__ */ b("p", {
486
485
  className: "text-sm text-status-error-text",
487
486
  role: "alert",
488
- children: J
487
+ children: Ae
489
488
  }),
490
- /* @__PURE__ */ y(o, { children: /* @__PURE__ */ y(s, {
489
+ /* @__PURE__ */ b(s, { children: /* @__PURE__ */ b(c, {
491
490
  className: "pt-6",
492
- children: /* @__PURE__ */ b("div", {
491
+ children: /* @__PURE__ */ x("div", {
493
492
  className: "flex items-start gap-2",
494
- children: [/* @__PURE__ */ y("input", {
493
+ children: [/* @__PURE__ */ b("input", {
495
494
  type: "checkbox",
496
495
  id: "activate-on-create",
497
- checked: Ae,
496
+ checked: X,
498
497
  onChange: (e) => je(e.target.checked),
499
498
  className: "mt-1 h-4 w-4"
500
- }), /* @__PURE__ */ b("label", {
499
+ }), /* @__PURE__ */ x("label", {
501
500
  htmlFor: "activate-on-create",
502
501
  className: "text-sm",
503
- children: [/* @__PURE__ */ y("span", {
502
+ children: [/* @__PURE__ */ b("span", {
504
503
  className: "font-medium",
505
504
  children: "Enforce immediately"
506
- }), /* @__PURE__ */ y("span", {
505
+ }), /* @__PURE__ */ b("span", {
507
506
  className: "block text-text-secondary",
508
507
  children: "Only active policies are enforced. Leave unchecked to save this policy as a draft and activate it later."
509
508
  })]
@@ -513,119 +512,119 @@ var xe = [
513
512
  ]
514
513
  })
515
514
  });
516
- if (Ce) return /* @__PURE__ */ y(i, {
515
+ if (Ce) return /* @__PURE__ */ b(o, {
517
516
  title: "Loading...",
518
- children: /* @__PURE__ */ y("div", { className: "h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" })
517
+ children: /* @__PURE__ */ b("div", { className: "h-96 bg-bg-sunken motion-safe:animate-vc-shimmer rounded-lg" })
519
518
  });
520
- if (!I) return /* @__PURE__ */ y(i, {
519
+ if (!I) return /* @__PURE__ */ b(o, {
521
520
  title: "Policy Not Found",
522
- children: /* @__PURE__ */ y(re, {
521
+ children: /* @__PURE__ */ b(ee, {
523
522
  illustration: "empty-generic",
524
523
  title: "Policy Not Found",
525
524
  description: "This policy doesn't exist.",
526
- action: /* @__PURE__ */ y(a, {
525
+ action: /* @__PURE__ */ b(f, {
527
526
  onClick: () => F("policies"),
528
527
  children: "Back to Policies"
529
528
  })
530
529
  })
531
530
  });
532
- let Q = g(I.type, xe, "CONTENT"), $ = me(Q, I.config);
533
- return /* @__PURE__ */ y(i, {
534
- title: /* @__PURE__ */ b("div", {
531
+ let Q = _(I.type, xe, "CONTENT"), $ = pe(Q, I.config);
532
+ return /* @__PURE__ */ b(o, {
533
+ title: /* @__PURE__ */ x("div", {
535
534
  className: "flex items-center gap-3",
536
535
  children: [
537
- /* @__PURE__ */ y(a, {
536
+ /* @__PURE__ */ b(f, {
538
537
  variant: "ghost",
539
538
  size: "icon",
540
539
  onClick: () => F("policies"),
541
- children: /* @__PURE__ */ y(_e, { size: 20 })
540
+ children: /* @__PURE__ */ b(ge, { size: 20 })
542
541
  }),
543
- /* @__PURE__ */ y("div", {
542
+ /* @__PURE__ */ b("div", {
544
543
  className: "p-2 rounded-lg bg-action-primary-bg/10",
545
- children: /* @__PURE__ */ y(M, { type: Q })
544
+ children: /* @__PURE__ */ b(M, { type: Q })
546
545
  }),
547
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("div", {
546
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
548
547
  className: "flex items-center gap-2",
549
- children: [/* @__PURE__ */ y("span", { children: I.name }), /* @__PURE__ */ y(te, { status: I.status })]
550
- }), /* @__PURE__ */ y("p", {
548
+ children: [/* @__PURE__ */ b("span", { children: I.name }), /* @__PURE__ */ b(ne, { status: I.status })]
549
+ }), /* @__PURE__ */ b("p", {
551
550
  className: "text-sm font-normal text-text-secondary",
552
551
  children: I.description
553
552
  })] })
554
553
  ]
555
554
  }),
556
- actions: /* @__PURE__ */ y("div", {
555
+ actions: /* @__PURE__ */ b("div", {
557
556
  className: "flex gap-2",
558
- children: B ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(a, {
557
+ children: B ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(f, {
559
558
  variant: "outline",
560
559
  onClick: () => V(!1),
561
560
  children: "Cancel"
562
- }), /* @__PURE__ */ y(a, {
563
- leftIcon: /* @__PURE__ */ y(E, { size: 16 }),
561
+ }), /* @__PURE__ */ b(f, {
562
+ leftIcon: /* @__PURE__ */ b(E, { size: 16 }),
564
563
  onClick: Ne,
565
564
  isLoading: z,
566
565
  disabled: !G.name,
567
566
  children: "Save Changes"
568
- })] }) : /* @__PURE__ */ b(v, { children: [
569
- /* @__PURE__ */ y(r, {
570
- permission: n.POLICY_UPDATE,
571
- children: /* @__PURE__ */ y(a, {
567
+ })] }) : /* @__PURE__ */ x(y, { children: [
568
+ /* @__PURE__ */ b(a, {
569
+ permission: i.POLICY_UPDATE,
570
+ children: /* @__PURE__ */ b(f, {
572
571
  variant: Z ? "outline" : "default",
573
- leftIcon: /* @__PURE__ */ y(ye, { size: 16 }),
572
+ leftIcon: /* @__PURE__ */ b(ye, { size: 16 }),
574
573
  onClick: () => void Fe(),
575
574
  isLoading: z,
576
575
  children: Z ? "Deactivate" : "Activate"
577
576
  })
578
577
  }),
579
- /* @__PURE__ */ y(r, {
580
- permission: n.POLICY_UPDATE,
581
- children: /* @__PURE__ */ y(a, {
578
+ /* @__PURE__ */ b(a, {
579
+ permission: i.POLICY_UPDATE,
580
+ children: /* @__PURE__ */ b(f, {
582
581
  variant: "outline",
583
- leftIcon: /* @__PURE__ */ y(ve, { size: 16 }),
582
+ leftIcon: /* @__PURE__ */ b(ve, { size: 16 }),
584
583
  onClick: Ie,
585
584
  children: "Edit"
586
585
  })
587
586
  }),
588
- Oe ? /* @__PURE__ */ b("div", {
587
+ Oe ? /* @__PURE__ */ x("div", {
589
588
  className: "flex gap-2",
590
- children: [/* @__PURE__ */ y(a, {
589
+ children: [/* @__PURE__ */ b(f, {
591
590
  variant: "outline",
592
591
  size: "sm",
593
592
  onClick: () => H(!1),
594
593
  children: "Cancel"
595
- }), /* @__PURE__ */ y(a, {
594
+ }), /* @__PURE__ */ b(f, {
596
595
  variant: "destructive",
597
596
  size: "sm",
598
597
  onClick: () => {
599
- ne("medium"), Pe();
598
+ n("medium"), Pe();
600
599
  },
601
600
  isLoading: De,
602
601
  children: "Confirm Delete"
603
602
  })]
604
- }) : /* @__PURE__ */ y(r, {
605
- permission: n.POLICY_DELETE,
606
- children: /* @__PURE__ */ y(a, {
603
+ }) : /* @__PURE__ */ b(a, {
604
+ permission: i.POLICY_DELETE,
605
+ children: /* @__PURE__ */ b(f, {
607
606
  variant: "destructive",
608
- leftIcon: /* @__PURE__ */ y(O, { size: 16 }),
607
+ leftIcon: /* @__PURE__ */ b(O, { size: 16 }),
609
608
  onClick: () => H(!0),
610
609
  children: "Delete"
611
610
  })
612
611
  })
613
612
  ] })
614
613
  }),
615
- children: /* @__PURE__ */ b("div", {
614
+ children: /* @__PURE__ */ x("div", {
616
615
  className: "space-y-6",
617
616
  children: [
618
- /* @__PURE__ */ y(he, {
619
- icon: /* @__PURE__ */ y(D, { size: 18 }),
617
+ /* @__PURE__ */ b(me, {
618
+ icon: /* @__PURE__ */ b(D, { size: 18 }),
620
619
  children: "This is a single guardrail and its rules. Review and tune exactly what it enforces — what content to block, which tools are allowed, the spend or rate limits it applies — then attach it to the agents and bots that should obey it. Policies are how you keep agents safe, compliant and within budget."
621
620
  }),
622
- B && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ y(u, { children: "Edit Policy" }) }), /* @__PURE__ */ b(s, {
621
+ B && /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ b(u, { children: /* @__PURE__ */ b(d, { children: "Edit Policy" }) }), /* @__PURE__ */ x(c, {
623
622
  className: "space-y-4",
624
623
  children: [
625
- /* @__PURE__ */ y(p, {
624
+ /* @__PURE__ */ b(p, {
626
625
  label: "Policy Name",
627
626
  required: !0,
628
- children: /* @__PURE__ */ y(m, {
627
+ children: /* @__PURE__ */ b(m, {
629
628
  value: G.name,
630
629
  onChange: (e) => K({
631
630
  ...G,
@@ -633,9 +632,9 @@ var xe = [
633
632
  })
634
633
  })
635
634
  }),
636
- /* @__PURE__ */ y(p, {
635
+ /* @__PURE__ */ b(p, {
637
636
  label: "Description",
638
- children: /* @__PURE__ */ y(h, {
637
+ children: /* @__PURE__ */ b(h, {
639
638
  value: G.description,
640
639
  onChange: (e) => K({
641
640
  ...G,
@@ -644,9 +643,9 @@ var xe = [
644
643
  rows: 3
645
644
  })
646
645
  }),
647
- /* @__PURE__ */ y(p, {
646
+ /* @__PURE__ */ b(p, {
648
647
  label: "Visibility",
649
- children: /* @__PURE__ */ b("select", {
648
+ children: /* @__PURE__ */ x("select", {
650
649
  className: j,
651
650
  value: G.visibility,
652
651
  onChange: (e) => K({
@@ -654,142 +653,142 @@ var xe = [
654
653
  visibility: e.target.value
655
654
  }),
656
655
  children: [
657
- /* @__PURE__ */ y("option", {
656
+ /* @__PURE__ */ b("option", {
658
657
  value: "PRIVATE",
659
658
  children: "Private"
660
659
  }),
661
- /* @__PURE__ */ y("option", {
660
+ /* @__PURE__ */ b("option", {
662
661
  value: "WORKSPACE",
663
662
  children: "Workspace"
664
663
  }),
665
- /* @__PURE__ */ y("option", {
664
+ /* @__PURE__ */ b("option", {
666
665
  value: "PUBLIC",
667
666
  children: "Public"
668
667
  })
669
668
  ]
670
669
  })
671
670
  }),
672
- /* @__PURE__ */ y("p", {
671
+ /* @__PURE__ */ b("p", {
673
672
  className: "text-sm text-text-secondary",
674
673
  children: "Note: Policy type and configuration cannot be changed after creation."
675
674
  })
676
675
  ]
677
676
  })] }),
678
- /* @__PURE__ */ b("div", {
677
+ /* @__PURE__ */ x("div", {
679
678
  className: "grid grid-cols-2 md:grid-cols-4 gap-4",
680
679
  children: [
681
- /* @__PURE__ */ y(o, {
680
+ /* @__PURE__ */ b(s, {
682
681
  treatment: "glass",
683
682
  glow: !0,
684
- children: /* @__PURE__ */ b(s, {
683
+ children: /* @__PURE__ */ x(c, {
685
684
  className: "pt-6 text-center",
686
685
  children: [
687
- /* @__PURE__ */ y("div", {
686
+ /* @__PURE__ */ b("div", {
688
687
  className: "p-3 rounded-full bg-action-primary-bg/10 w-fit mx-auto mb-2",
689
- children: /* @__PURE__ */ y(M, { type: Q })
688
+ children: /* @__PURE__ */ b(M, { type: Q })
690
689
  }),
691
- /* @__PURE__ */ y("p", {
690
+ /* @__PURE__ */ b("p", {
692
691
  className: "text-lg font-bold",
693
692
  children: N[Q]
694
693
  }),
695
- /* @__PURE__ */ y("p", {
694
+ /* @__PURE__ */ b("p", {
696
695
  className: "text-sm text-text-secondary",
697
696
  children: "Policy Type"
698
697
  })
699
698
  ]
700
699
  })
701
700
  }),
702
- /* @__PURE__ */ y(o, { children: /* @__PURE__ */ b(s, {
701
+ /* @__PURE__ */ b(s, { children: /* @__PURE__ */ x(c, {
703
702
  className: "pt-6 text-center",
704
- children: [/* @__PURE__ */ y("p", {
703
+ children: [/* @__PURE__ */ b("p", {
705
704
  className: "text-3xl font-bold text-text-primary capitalize",
706
705
  children: I.visibility.toLowerCase()
707
- }), /* @__PURE__ */ y("p", {
706
+ }), /* @__PURE__ */ b("p", {
708
707
  className: "text-sm text-text-secondary",
709
708
  children: "Visibility"
710
709
  })]
711
710
  }) }),
712
- /* @__PURE__ */ y(o, { children: /* @__PURE__ */ b(s, {
711
+ /* @__PURE__ */ b(s, { children: /* @__PURE__ */ x(c, {
713
712
  className: "pt-6 text-center",
714
- children: [/* @__PURE__ */ y("p", {
713
+ children: [/* @__PURE__ */ b("p", {
715
714
  className: "text-3xl font-bold text-text-primary",
716
715
  children: I.revision
717
- }), /* @__PURE__ */ y("p", {
716
+ }), /* @__PURE__ */ b("p", {
718
717
  className: "text-sm text-text-secondary",
719
718
  children: "Revision"
720
719
  })]
721
720
  }) }),
722
- /* @__PURE__ */ y(o, { children: /* @__PURE__ */ b(s, {
721
+ /* @__PURE__ */ b(s, { children: /* @__PURE__ */ x(c, {
723
722
  className: "pt-6 text-center",
724
- children: [/* @__PURE__ */ y("p", {
723
+ children: [/* @__PURE__ */ b("p", {
725
724
  className: "text-lg font-bold text-text-primary",
726
- children: t(I.updatedAt)
727
- }), /* @__PURE__ */ y("p", {
725
+ children: g(I.updatedAt)
726
+ }), /* @__PURE__ */ b("p", {
728
727
  className: "text-sm text-text-secondary",
729
728
  children: "Last Updated"
730
729
  })]
731
730
  }) })
732
731
  ]
733
732
  }),
734
- /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y(u, { children: "Configuration" }), /* @__PURE__ */ y(c, { children: "Current policy configuration" })] }), /* @__PURE__ */ b(s, {
733
+ /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ x(u, { children: [/* @__PURE__ */ b(d, { children: "Configuration" }), /* @__PURE__ */ b(l, { children: "Current policy configuration" })] }), /* @__PURE__ */ x(c, {
735
734
  className: "space-y-4",
736
- children: [$ === null ? /* @__PURE__ */ b("div", {
735
+ children: [$ === null ? /* @__PURE__ */ x("div", {
737
736
  className: "flex items-start gap-2 p-3 bg-status-warning-bg-subtle rounded-lg text-sm",
738
737
  "data-testid": "policy-not-enforced",
739
- children: [/* @__PURE__ */ y(x, {
738
+ children: [/* @__PURE__ */ b(S, {
740
739
  size: 16,
741
740
  className: "mt-0.5 shrink-0 text-status-warning-text"
742
- }), /* @__PURE__ */ b("p", { children: [N[Q], " settings are not enforced at runtime. This policy is kept for reference only and does not restrict any agent."] })]
743
- }) : $.length > 0 ? /* @__PURE__ */ b("div", {
741
+ }), /* @__PURE__ */ x("p", { children: [N[Q], " settings are not enforced at runtime. This policy is kept for reference only and does not restrict any agent."] })]
742
+ }) : $.length > 0 ? /* @__PURE__ */ x("div", {
744
743
  className: "flex items-start gap-2 p-3 bg-status-warning-bg-subtle rounded-lg text-sm",
745
744
  "data-testid": "policy-ignored-keys",
746
- children: [/* @__PURE__ */ y(x, {
745
+ children: [/* @__PURE__ */ b(S, {
747
746
  size: 16,
748
747
  className: "mt-0.5 shrink-0 text-status-warning-text"
749
- }), /* @__PURE__ */ b("p", { children: [
748
+ }), /* @__PURE__ */ x("p", { children: [
750
749
  "These settings are not enforced at runtime and have no effect:",
751
750
  " ",
752
- /* @__PURE__ */ y("span", {
751
+ /* @__PURE__ */ b("span", {
753
752
  className: "font-mono",
754
753
  children: $.join(", ")
755
754
  }),
756
755
  ". Create a new policy to use the enforced settings."
757
756
  ] })]
758
- }) : null, /* @__PURE__ */ y("div", {
757
+ }) : null, /* @__PURE__ */ b("div", {
759
758
  className: "p-4 bg-bg-sunken rounded-lg font-mono text-sm overflow-auto",
760
- children: /* @__PURE__ */ y("pre", { children: JSON.stringify(I.config, null, 2) })
759
+ children: /* @__PURE__ */ b("pre", { children: JSON.stringify(I.config, null, 2) })
761
760
  })]
762
761
  })] }),
763
- /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(l, { children: /* @__PURE__ */ b(u, {
762
+ /* @__PURE__ */ x(s, { children: [/* @__PURE__ */ b(u, { children: /* @__PURE__ */ x(d, {
764
763
  className: "flex items-center gap-2",
765
- children: [/* @__PURE__ */ y(be, { size: 18 }), "Metadata"]
766
- }) }), /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b("div", {
764
+ children: [/* @__PURE__ */ b(be, { size: 18 }), "Metadata"]
765
+ }) }), /* @__PURE__ */ b(c, { children: /* @__PURE__ */ x("div", {
767
766
  className: "grid grid-cols-2 md:grid-cols-4 gap-6 text-sm",
768
767
  children: [
769
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
768
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
770
769
  className: "text-text-secondary",
771
770
  children: "Created"
772
- }), /* @__PURE__ */ y("p", {
771
+ }), /* @__PURE__ */ b("p", {
773
772
  className: "font-medium",
774
- children: t(I.createdAt)
773
+ children: g(I.createdAt)
775
774
  })] }),
776
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
775
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
777
776
  className: "text-text-secondary",
778
777
  children: "Updated"
779
- }), /* @__PURE__ */ y("p", {
778
+ }), /* @__PURE__ */ b("p", {
780
779
  className: "font-medium",
781
- children: t(I.updatedAt)
780
+ children: g(I.updatedAt)
782
781
  })] }),
783
- /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
782
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
784
783
  className: "text-text-secondary",
785
784
  children: "Tags"
786
- }), /* @__PURE__ */ y("div", {
785
+ }), /* @__PURE__ */ b("div", {
787
786
  className: "flex gap-1",
788
- children: I.tags.length > 0 ? I.tags.map((e) => /* @__PURE__ */ y(ee, {
787
+ children: I.tags.length > 0 ? I.tags.map((e) => /* @__PURE__ */ b(te, {
789
788
  variant: "secondary",
790
789
  className: "text-xs",
791
790
  children: e
792
- }, e)) : /* @__PURE__ */ y("span", {
791
+ }, e)) : /* @__PURE__ */ b("span", {
793
792
  className: "text-text-secondary",
794
793
  children: "None"
795
794
  })
@@ -800,7 +799,6 @@ var xe = [
800
799
  })
801
800
  });
802
801
  };
803
- //#endregion
804
802
  export { P as PolicyDetailPage };
805
803
 
806
804
  //# sourceMappingURL=PolicyDetailPage.js.map