@hed-hog/core 0.0.349 → 0.0.350

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 (126) hide show
  1. package/dist/auth/auth.controller.d.ts +3 -3
  2. package/dist/auth/auth.service.d.ts +8 -8
  3. package/dist/core.module.d.ts.map +1 -1
  4. package/dist/core.module.js +3 -0
  5. package/dist/core.module.js.map +1 -1
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/mcp/guards/mcp-auth.guard.d.ts +6 -1
  11. package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -1
  12. package/dist/mcp/guards/mcp-auth.guard.js +29 -2
  13. package/dist/mcp/guards/mcp-auth.guard.js.map +1 -1
  14. package/dist/mcp/mcp-api-key.controller.d.ts +32 -0
  15. package/dist/mcp/mcp-api-key.controller.d.ts.map +1 -0
  16. package/dist/mcp/mcp-api-key.controller.js +64 -0
  17. package/dist/mcp/mcp-api-key.controller.js.map +1 -0
  18. package/dist/mcp/mcp-api-key.service.d.ts +27 -0
  19. package/dist/mcp/mcp-api-key.service.d.ts.map +1 -0
  20. package/dist/mcp/mcp-api-key.service.js +74 -0
  21. package/dist/mcp/mcp-api-key.service.js.map +1 -0
  22. package/dist/mcp/mcp-registry.service.d.ts +1 -2
  23. package/dist/mcp/mcp-registry.service.d.ts.map +1 -1
  24. package/dist/mcp/mcp-registry.service.js +6 -2
  25. package/dist/mcp/mcp-registry.service.js.map +1 -1
  26. package/dist/mcp/mcp.module.d.ts.map +1 -1
  27. package/dist/mcp/mcp.module.js +8 -1
  28. package/dist/mcp/mcp.module.js.map +1 -1
  29. package/dist/mcp-chat/mcp-chat.controller.d.ts +4 -0
  30. package/dist/mcp-chat/mcp-chat.controller.d.ts.map +1 -1
  31. package/dist/mcp-chat/mcp-chat.controller.js +46 -0
  32. package/dist/mcp-chat/mcp-chat.controller.js.map +1 -1
  33. package/dist/mcp-chat/mcp-chat.service.d.ts +6 -1
  34. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  35. package/dist/mcp-chat/mcp-chat.service.js +125 -17
  36. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  37. package/dist/notification/dto/create-notification.dto.d.ts +26 -0
  38. package/dist/notification/dto/create-notification.dto.d.ts.map +1 -0
  39. package/dist/notification/dto/create-notification.dto.js +86 -0
  40. package/dist/notification/dto/create-notification.dto.js.map +1 -0
  41. package/dist/notification/dto/update-progress.dto.d.ts +6 -0
  42. package/dist/notification/dto/update-progress.dto.d.ts.map +1 -0
  43. package/dist/notification/dto/update-progress.dto.js +33 -0
  44. package/dist/notification/dto/update-progress.dto.js.map +1 -0
  45. package/dist/notification/notification.controller.d.ts +108 -0
  46. package/dist/notification/notification.controller.d.ts.map +1 -0
  47. package/dist/notification/notification.controller.js +118 -0
  48. package/dist/notification/notification.controller.js.map +1 -0
  49. package/dist/notification/notification.module.d.ts +3 -0
  50. package/dist/notification/notification.module.d.ts.map +1 -0
  51. package/dist/notification/notification.module.js +29 -0
  52. package/dist/notification/notification.module.js.map +1 -0
  53. package/dist/notification/notification.service.d.ts +98 -0
  54. package/dist/notification/notification.service.d.ts.map +1 -0
  55. package/dist/notification/notification.service.js +123 -0
  56. package/dist/notification/notification.service.js.map +1 -0
  57. package/dist/profile/profile.controller.d.ts +1 -1
  58. package/dist/profile/profile.service.d.ts +1 -1
  59. package/dist/session/session.controller.d.ts +1 -1
  60. package/dist/session/session.service.d.ts +3 -3
  61. package/dist/setting/dto/update-setting-list.dto.d.ts +9 -0
  62. package/dist/setting/dto/update-setting-list.dto.d.ts.map +1 -0
  63. package/dist/setting/dto/update-setting-list.dto.js +44 -0
  64. package/dist/setting/dto/update-setting-list.dto.js.map +1 -0
  65. package/dist/setting/setting.controller.d.ts +19 -0
  66. package/dist/setting/setting.controller.d.ts.map +1 -1
  67. package/dist/setting/setting.controller.js +12 -0
  68. package/dist/setting/setting.controller.js.map +1 -1
  69. package/dist/setting/setting.service.d.ts +19 -0
  70. package/dist/setting/setting.service.d.ts.map +1 -1
  71. package/dist/setting/setting.service.js +79 -0
  72. package/dist/setting/setting.service.js.map +1 -1
  73. package/dist/task/task.service.d.ts +12 -0
  74. package/dist/task/task.service.d.ts.map +1 -1
  75. package/dist/task/task.service.js +60 -0
  76. package/dist/task/task.service.js.map +1 -1
  77. package/dist/user/user.controller.d.ts +2 -2
  78. package/dist/user/user.service.d.ts +6 -6
  79. package/dist/webhook-integration/webhook-integration.service.d.ts +4 -0
  80. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  81. package/dist/webhook-integration/webhook-integration.service.js +184 -34
  82. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  83. package/dist/webhook-integration/webhook-utils.d.ts +1 -0
  84. package/dist/webhook-integration/webhook-utils.d.ts.map +1 -1
  85. package/dist/webhook-integration/webhook-utils.js +38 -0
  86. package/dist/webhook-integration/webhook-utils.js.map +1 -1
  87. package/hedhog/data/menu.yaml +48 -4
  88. package/hedhog/data/route.yaml +133 -0
  89. package/hedhog/data/setting_group.yaml +45 -0
  90. package/hedhog/data/setting_subgroup.yaml +16 -0
  91. package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +285 -0
  92. package/hedhog/frontend/app/account/layout.tsx.ejs +32 -55
  93. package/hedhog/frontend/app/account/mcp-tokens/page.tsx.ejs +5 -0
  94. package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +2098 -1835
  95. package/hedhog/frontend/app/mcp_chat/chat-components.tsx.ejs +595 -0
  96. package/hedhog/frontend/app/mcp_chat/chat-types.ts.ejs +16 -0
  97. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +554 -383
  98. package/hedhog/frontend/app/setting-list/page.tsx.ejs +649 -0
  99. package/hedhog/frontend/app/users/page.tsx.ejs +445 -203
  100. package/hedhog/frontend/app/users/user-sheet.tsx.ejs +16 -37
  101. package/hedhog/frontend/messages/en.json +241 -2
  102. package/hedhog/frontend/messages/pt.json +241 -2
  103. package/hedhog/table/mcp_api_key.yaml +30 -0
  104. package/hedhog/table/notification.yaml +72 -0
  105. package/hedhog/table/webhook_action_log.yaml +49 -0
  106. package/package.json +4 -4
  107. package/src/core.module.ts +3 -0
  108. package/src/index.ts +5 -0
  109. package/src/mcp/guards/mcp-auth.guard.ts +64 -32
  110. package/src/mcp/mcp-api-key.controller.ts +42 -0
  111. package/src/mcp/mcp-api-key.service.ts +66 -0
  112. package/src/mcp/mcp-registry.service.ts +75 -69
  113. package/src/mcp/mcp.module.ts +43 -36
  114. package/src/mcp-chat/mcp-chat.controller.ts +113 -60
  115. package/src/mcp-chat/mcp-chat.service.ts +494 -332
  116. package/src/notification/dto/create-notification.dto.ts +71 -0
  117. package/src/notification/dto/update-progress.dto.ts +16 -0
  118. package/src/notification/notification.controller.ts +71 -0
  119. package/src/notification/notification.module.ts +16 -0
  120. package/src/notification/notification.service.ts +124 -0
  121. package/src/setting/dto/update-setting-list.dto.ts +32 -0
  122. package/src/setting/setting.controller.ts +9 -0
  123. package/src/setting/setting.service.ts +91 -0
  124. package/src/task/task.service.ts +72 -0
  125. package/src/webhook-integration/webhook-integration.service.ts +934 -735
  126. package/src/webhook-integration/webhook-utils.ts +136 -79
@@ -44,7 +44,7 @@ import { User, UserMfa } from '@hed-hog/api-types';
44
44
  import { useApp, useQuery } from '@hed-hog/next-app-provider';
45
45
  import { zodResolver } from '@hookform/resolvers/zod';
46
46
  import { Avatar, AvatarFallback, AvatarImage } from '@radix-ui/react-avatar';
47
- import { Tabs, TabsContent, TabsList, TabsTrigger } from '@radix-ui/react-tabs';
47
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
48
48
  import { formatDistanceToNow } from 'date-fns';
49
49
  import { enUS, ptBR } from 'date-fns/locale';
50
50
  import {
@@ -632,54 +632,33 @@ function UserEditSheet({
632
632
  </SheetHeader>
633
633
 
634
634
  <Tabs value={activeTab} onValueChange={setActiveTab}>
635
- <TabsList className="grid w-full grid-cols-7 bg-muted rounded-md text-muted-foreground text-sm">
636
- <TabsTrigger
637
- value="overview"
638
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
639
- >
640
- <UserCircle className="h-4 w-4 min-h-4 min-w-4" />
635
+ <TabsList className="overflow-x-auto">
636
+ <TabsTrigger value="overview">
637
+ <UserCircle className="h-4 w-4" />
641
638
  <span className="hidden md:inline">{t('tabOverview')}</span>
642
639
  </TabsTrigger>
643
- <TabsTrigger
644
- value="edit"
645
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
646
- >
647
- <Save className="h-4 w-4 min-h-4 min-w-4" />
640
+ <TabsTrigger value="edit">
641
+ <Save className="h-4 w-4" />
648
642
  <span className="hidden md:inline">{t('tabEdit')}</span>
649
643
  </TabsTrigger>
650
- <TabsTrigger
651
- value="credentials"
652
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
653
- >
654
- <Key className="h-4 w-4 min-h-4 min-w-4" />
644
+ <TabsTrigger value="credentials">
645
+ <Key className="h-4 w-4" />
655
646
  <span className="hidden md:inline">{t('tabCredentials')}</span>
656
647
  </TabsTrigger>
657
- <TabsTrigger
658
- value="identifiers"
659
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
660
- >
661
- <Fingerprint className="h-4 w-4 min-h-4 min-w-4" />
648
+ <TabsTrigger value="identifiers">
649
+ <Fingerprint className="h-4 w-4" />
662
650
  <span className="hidden md:inline">{t('tabIdentifiers')}</span>
663
651
  </TabsTrigger>
664
- <TabsTrigger
665
- value="permissions"
666
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
667
- >
668
- <ShieldCheck className="h-4 w-4 min-h-4 min-w-4" />
652
+ <TabsTrigger value="permissions">
653
+ <ShieldCheck className="h-4 w-4" />
669
654
  <span className="hidden md:inline">{t('tabPermissions')}</span>
670
655
  </TabsTrigger>
671
- <TabsTrigger
672
- value="mfa"
673
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
674
- >
675
- <Shield className="h-4 w-4 min-h-4 min-w-4" />
656
+ <TabsTrigger value="mfa">
657
+ <Shield className="h-4 w-4" />
676
658
  <span className="hidden md:inline">{t('tabMfa')}</span>
677
659
  </TabsTrigger>
678
- <TabsTrigger
679
- value="sessions"
680
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
681
- >
682
- <Monitor className="h-4 w-4 min-h-4 min-w-4" />
660
+ <TabsTrigger value="sessions">
661
+ <Monitor className="h-4 w-4" />
683
662
  <span className="hidden md:inline">{t('tabSessions')}</span>
684
663
  </TabsTrigger>
685
664
  </TabsList>
@@ -20,7 +20,15 @@
20
20
  },
21
21
  "SearchBar": {
22
22
  "searchPlaceholder": "Search...",
23
- "btnBuscar": "Search"
23
+ "btnBuscar": "Search",
24
+ "filterPlaceholder": "Filter"
25
+ },
26
+ "Sheet": {
27
+ "close": "Close"
28
+ },
29
+ "PageHeader": {
30
+ "openBreadcrumbLevels": "Open breadcrumb levels",
31
+ "openActionsMenu": "Open actions menu"
24
32
  },
25
33
  "EmailVerificationPage": {
26
34
  "title": "Email Verification",
@@ -67,6 +75,7 @@
67
75
  "tab2fa": "2FA",
68
76
  "tabAccounts": "Accounts",
69
77
  "tabSessions": "Sessions",
78
+ "tabMcpTokens": "MCP Tokens",
70
79
  "breadcrumbLabel": "Account",
71
80
  "home": "Home",
72
81
  "title": "Account",
@@ -125,6 +134,47 @@
125
134
  "timezoneUpdated": "Timezone updated successfully",
126
135
  "timezoneUpdateError": "Failed to update timezone"
127
136
  },
137
+ "SettingListPage": {
138
+ "breadcrumbs": {
139
+ "home": "Home",
140
+ "core": "Core"
141
+ },
142
+ "title": "Manage setting options",
143
+ "description": "Manage options for list-type settings (combobox and checkbox), organized by group and subgroup.",
144
+ "searchPlaceholder": "Search by name, slug, description or option...",
145
+ "loading": "Loading settings...",
146
+ "emptyTitle": "No list settings found",
147
+ "emptyDescriptionNoSettings": "The selected group has no list settings (combobox/checkbox) with options.",
148
+ "emptyDescriptionFiltered": "No setting matched the current filter.",
149
+ "optionsSectionTitle": "List options",
150
+ "emptyOptions": "No options configured.",
151
+ "optionPlaceholder": "Enter option value",
152
+ "optionsSavedSuccess": "Options updated successfully.",
153
+ "optionsSavedError": "Could not update options.",
154
+ "actions": {
155
+ "addOption": "Add option",
156
+ "removeOption": "Remove option",
157
+ "saveOptions": "Save options",
158
+ "saving": "Saving..."
159
+ },
160
+ "sections": {
161
+ "withoutSubgroup": "Without subgroup"
162
+ },
163
+ "kpis": {
164
+ "groups": "Groups",
165
+ "settingsTotal": "List settings",
166
+ "subgroups": "Subgroups",
167
+ "settingsWithOptions": "With options",
168
+ "totalOptions": "Total options",
169
+ "options": "Options"
170
+ },
171
+ "filters": {
172
+ "allGroups": "All",
173
+ "groupPlaceholder": "Group",
174
+ "subgroupPlaceholder": "Subgroup",
175
+ "allSubgroups": "All subgroups"
176
+ }
177
+ },
128
178
  "UserPage": {
129
179
  "errorName": "Name must be at least 2 characters",
130
180
  "errorEmail": "Invalid email address",
@@ -242,7 +292,13 @@
242
292
  "buttonCopyPassword": "Copy password",
243
293
  "passwordCopied": "Password copied to clipboard.",
244
294
  "passwordCopyError": "Unable to copy password.",
245
- "close": "Close"
295
+ "close": "Close",
296
+ "viewMode": "View",
297
+ "viewModeTable": "Table",
298
+ "viewModeCards": "Cards",
299
+ "columnName": "Name",
300
+ "columnEmail": "Email",
301
+ "columnStatus": "Status"
246
302
  },
247
303
  "RolePage": {
248
304
  "title": "Roles Management",
@@ -1752,15 +1808,135 @@
1752
1808
  "grantedByRole": "Granted by",
1753
1809
  "moreUsers": "+{count} more users"
1754
1810
  },
1811
+ "IntegrationsWebhooksPage": {
1812
+ "title": "Integrations & Webhooks",
1813
+ "description": "Manage event catalog entries, incoming webhooks, and outbound event webhooks.",
1814
+ "breadcrumbHome": "Dashboard",
1815
+ "breadcrumbManagement": "Management",
1816
+ "statsEvents": "Events",
1817
+ "statsIncoming": "Incoming webhooks",
1818
+ "statsEventWebhooks": "Event webhooks",
1819
+ "tabCatalog": "Catalog",
1820
+ "tabIncoming": "Incoming",
1821
+ "tabEventWebhooks": "Event -> Webhook",
1822
+ "newEvent": "New event",
1823
+ "newIncoming": "New incoming webhook",
1824
+ "newEventWebhook": "New event webhook",
1825
+ "searchEvents": "Search events...",
1826
+ "searchIncoming": "Search incoming webhooks...",
1827
+ "searchEventWebhooks": "Search event webhooks...",
1828
+ "emptyEvents": "No events found",
1829
+ "emptyEventsDescription": "Create your first event to start building the catalog.",
1830
+ "emptyIncoming": "No incoming webhooks found",
1831
+ "emptyIncomingDescription": "Create an incoming webhook to receive external calls.",
1832
+ "emptyEventWebhooks": "No event webhooks found",
1833
+ "emptyEventWebhooksDescription": "Create an event webhook to dispatch requests automatically.",
1834
+ "eventName": "Event",
1835
+ "name": "Name",
1836
+ "technicalName": "Technical name",
1837
+ "module": "Module",
1838
+ "descriptionColumn": "Description",
1839
+ "status": "Status",
1840
+ "updatedAt": "Updated at",
1841
+ "actions": "Actions",
1842
+ "publicUrl": "Public URL",
1843
+ "security": "Security",
1844
+ "actionsCount": "Actions count",
1845
+ "events": "Events",
1846
+ "httpTarget": "HTTP target",
1847
+ "retry": "Retries",
1848
+ "eventFormDescription": "Define the event details that can trigger integrations.",
1849
+ "incomingFormDescription": "Configure the public endpoint and actions for the incoming webhook.",
1850
+ "eventWebhookFormDescription": "Configure HTTP delivery when selected events are fired.",
1851
+ "requireToken": "Require token",
1852
+ "requireTokenHelp": "When enabled, each request must include the secret token.",
1853
+ "token": "Token",
1854
+ "uuid": "UUID",
1855
+ "oneTimeTokenTitle": "Generated token",
1856
+ "oneTimeTokenDescription": "Copy it now. This token is shown only once.",
1857
+ "tokenConfiguredTitle": "Token configured",
1858
+ "tokenConfiguredDescription": "The current token is active. Generate a new one to rotate it.",
1859
+ "tokenWillBeCreatedDescription": "A token will be created when you save this webhook.",
1860
+ "regenerateToken": "Generate new token",
1861
+ "allowedIps": "Allowed IPs",
1862
+ "ipAddress": "IP address",
1863
+ "emptyAllowedIps": "No IPs configured. Any source can call this endpoint.",
1864
+ "addIp": "Add IP",
1865
+ "bodySchema": "Body schema",
1866
+ "regenerateUuid": "Regenerate UUID",
1867
+ "actionSection": "Webhook actions",
1868
+ "actionType": "Action type",
1869
+ "email": "Email",
1870
+ "whatsapp": "WhatsApp",
1871
+ "order": "Order",
1872
+ "mailProfile": "Mail profile",
1873
+ "mailTemplate": "Mail template",
1874
+ "select": "Select",
1875
+ "emailTo": "Email to",
1876
+ "emailCc": "Email cc",
1877
+ "whatsappTargetType": "WhatsApp target type",
1878
+ "phone": "Phone",
1879
+ "group": "Group",
1880
+ "whatsappTarget": "WhatsApp target",
1881
+ "whatsappInstance": "WhatsApp instance",
1882
+ "whatsappBaseUrl": "WhatsApp base URL",
1883
+ "whatsappToken": "WhatsApp token",
1884
+ "whatsappTemplate": "WhatsApp template",
1885
+ "addAction": "Add action",
1886
+ "incomingSheetTabSettings": "Settings",
1887
+ "incomingSheetTabLogs": "Logs",
1888
+ "emptyIncomingLogs": "No execution logs",
1889
+ "emptyIncomingLogsDescription": "Webhook call attempts will appear here with per-action results.",
1890
+ "incomingLogsLoading": "Loading logs...",
1891
+ "logStatusSuccess": "Success",
1892
+ "logStatusFailed": "Failed",
1893
+ "logDuration": "Duration",
1894
+ "logRemoteIp": "Remote IP",
1895
+ "logResponse": "Response",
1896
+ "method": "Method",
1897
+ "url": "URL",
1898
+ "timeout": "Timeout (ms)",
1899
+ "headers": "Headers",
1900
+ "query": "Query",
1901
+ "payload": "Payload",
1902
+ "active": "Active",
1903
+ "inactive": "Inactive",
1904
+ "save": "Save",
1905
+ "cancel": "Cancel",
1906
+ "delete": "Delete",
1907
+ "deleteTitle": "Confirm deletion",
1908
+ "deleteDescription": "Are you sure you want to delete \"{name}\"? This action cannot be undone.",
1909
+ "created": "Created successfully",
1910
+ "updated": "Updated successfully",
1911
+ "deleted": "Deleted successfully",
1912
+ "saveError": "Could not save. Please review the data and try again.",
1913
+ "deleteError": "Could not delete the item.",
1914
+ "tokenGenerated": "Token generated successfully",
1915
+ "uuidRegenerated": "UUID regenerated successfully",
1916
+ "editEvent": "Edit event",
1917
+ "editIncoming": "Edit incoming webhook",
1918
+ "editEventWebhook": "Edit event webhook"
1919
+ },
1755
1920
  "McpChatPage": {
1756
1921
  "title": "MCP Chat",
1757
1922
  "description": "Chat with AI using MCP tools",
1758
1923
  "newConversation": "New Conversation",
1759
1924
  "conversations": "Conversations",
1925
+ "openConversations": "Open conversations",
1760
1926
  "placeholder": "Type your message... (Enter to send, Shift+Enter for new line)",
1761
1927
  "send": "Send",
1762
1928
  "sending": "Sending...",
1763
1929
  "noConversation": "Select or create a conversation",
1930
+ "loadMessagesError": "Failed to load messages",
1931
+ "createConversationError": "Failed to create conversation",
1932
+ "sendMessageError": "Failed to send message",
1933
+ "uploadFileError": "Failed to upload file",
1934
+ "deleteConversationSuccess": "Conversation deleted",
1935
+ "deleteConversationError": "Failed to delete conversation",
1936
+ "attachFile": "Attach file",
1937
+ "uploadingFile": "Uploading file...",
1938
+ "removeAttachment": "Remove attachment",
1939
+ "attachedFilesPrefix": "Attached files:",
1764
1940
  "toolCalled": "Tool called",
1765
1941
  "toolResult": "Tool result",
1766
1942
  "cancel": "Cancel",
@@ -1769,5 +1945,68 @@
1769
1945
  "breadcrumbDashboard": "Dashboard",
1770
1946
  "breadcrumbManagement": "Management",
1771
1947
  "breadcrumbCurrent": "MCP Chat"
1948
+ },
1949
+ "McpTokens": {
1950
+ "title": "MCP API Keys",
1951
+ "description": "Create and manage personal access tokens for MCP server authentication",
1952
+ "createToken": "Create Token",
1953
+ "createTokenTitle": "Create MCP API Key",
1954
+ "createTokenDescription": "Give your token a name to identify it later",
1955
+ "tokenNameLabel": "Token Name",
1956
+ "tokenNamePlaceholder": "e.g. Claude Desktop",
1957
+ "tokenCreatedTitle": "Token Created",
1958
+ "tokenCreatedWarning": "This token is shown only once. Copy it now and store it safely.",
1959
+ "tokenCreatedLabel": "Your new MCP API Key",
1960
+ "copyToken": "Copy",
1961
+ "tokenCopied": "Copied!",
1962
+ "closeDialog": "Close",
1963
+ "mcpUrlLabel": "MCP Server URL",
1964
+ "copyUrl": "Copy URL",
1965
+ "name": "Name",
1966
+ "tokenPrefix": "Token Prefix",
1967
+ "lastUsed": "Last Used",
1968
+ "createdAt": "Created At",
1969
+ "never": "Never",
1970
+ "noTokens": "No MCP API keys yet. Create one to connect external clients.",
1971
+ "revoke": "Revoke",
1972
+ "revokeTokenTitle": "Revoke API Key",
1973
+ "revokeTokenDescription": "This key will stop working immediately. This action cannot be undone.",
1974
+ "cancel": "Cancel",
1975
+ "revokeConfirm": "Revoke Key",
1976
+ "createSuccess": "API key created",
1977
+ "createFailure": "Failed to create API key",
1978
+ "revokeSuccess": "API key revoked",
1979
+ "revokeFailure": "Failed to revoke API key"
1980
+ },
1981
+ "McpFloatingChat": {
1982
+ "title": "MCP Chat",
1983
+ "openFullPage": "Open full view",
1984
+ "minimize": "Minimize",
1985
+ "openChat": "Open AI Chat (Ctrl+/)",
1986
+ "inputPlaceholder": "Ask anything...",
1987
+ "newConversation": "New conversation",
1988
+ "emptyState": "Start a conversation with the AI assistant.",
1989
+ "send": "Send",
1990
+ "sending": "Sending...",
1991
+ "attachFile": "Attach file",
1992
+ "uploadingFile": "Uploading...",
1993
+ "removeAttachment": "Remove attachment",
1994
+ "createConversationError": "Failed to start conversation",
1995
+ "sendMessageError": "Failed to send message",
1996
+ "uploadFileError": "Failed to upload file"
1997
+ },
1998
+ "Notification": {
1999
+ "title": "Notifications",
2000
+ "markAllRead": "Mark all as read",
2001
+ "empty": "No notifications",
2002
+ "justNow": "Just now",
2003
+ "minutesAgo": "{count}m ago",
2004
+ "hoursAgo": "{count}h ago",
2005
+ "daysAgo": "{count}d ago",
2006
+ "elapsed": "{time} elapsed",
2007
+ "inProgress": "In progress...",
2008
+ "completed": "Completed",
2009
+ "clearAll": "Clear all notifications",
2010
+ "failed": "Failed"
1772
2011
  }
1773
2012
  }
@@ -20,7 +20,15 @@
20
20
  },
21
21
  "SearchBar": {
22
22
  "searchPlaceholder": "Pesquisar...",
23
- "btnBuscar": "Buscar"
23
+ "btnBuscar": "Buscar",
24
+ "filterPlaceholder": "Filtrar"
25
+ },
26
+ "Sheet": {
27
+ "close": "Fechar"
28
+ },
29
+ "PageHeader": {
30
+ "openBreadcrumbLevels": "Abrir níveis do breadcrumb",
31
+ "openActionsMenu": "Abrir menu de ações"
24
32
  },
25
33
  "EmailVerificationPage": {
26
34
  "title": "Verificação de E-mail",
@@ -67,6 +75,7 @@
67
75
  "tab2fa": "2FA",
68
76
  "tabAccounts": "Contas",
69
77
  "tabSessions": "Sessões",
78
+ "tabMcpTokens": "Tokens MCP",
70
79
  "breadcrumbLabel": "Conta",
71
80
  "home": "Home",
72
81
  "title": "Conta",
@@ -125,6 +134,47 @@
125
134
  "timezoneUpdated": "Fuso horário atualizado com sucesso",
126
135
  "timezoneUpdateError": "Falha ao atualizar o fuso horário"
127
136
  },
137
+ "SettingListPage": {
138
+ "breadcrumbs": {
139
+ "home": "Home",
140
+ "core": "Core"
141
+ },
142
+ "title": "Gerenciar opções de configurações",
143
+ "description": "Gerencie as opções das settings do tipo lista (combobox e checkbox), organizadas por grupo e subgrupo.",
144
+ "searchPlaceholder": "Pesquisar por nome, slug, descrição ou opção...",
145
+ "loading": "Carregando configurações...",
146
+ "emptyTitle": "Nenhuma setting de lista encontrada",
147
+ "emptyDescriptionNoSettings": "O grupo selecionado não possui settings de lista (combobox/checkbox) com opções.",
148
+ "emptyDescriptionFiltered": "Nenhuma setting encontrada para o filtro informado.",
149
+ "optionsSectionTitle": "Opções da lista",
150
+ "emptyOptions": "Nenhuma opção cadastrada.",
151
+ "optionPlaceholder": "Digite o valor da opção",
152
+ "optionsSavedSuccess": "Opções atualizadas com sucesso.",
153
+ "optionsSavedError": "Não foi possível atualizar as opções.",
154
+ "actions": {
155
+ "addOption": "Adicionar opção",
156
+ "removeOption": "Remover opção",
157
+ "saveOptions": "Salvar opções",
158
+ "saving": "Salvando..."
159
+ },
160
+ "sections": {
161
+ "withoutSubgroup": "Sem subgrupo"
162
+ },
163
+ "kpis": {
164
+ "groups": "Grupos",
165
+ "settingsTotal": "Settings de lista",
166
+ "subgroups": "Subgrupos",
167
+ "settingsWithOptions": "Com opções",
168
+ "totalOptions": "Opções totais",
169
+ "options": "Opções"
170
+ },
171
+ "filters": {
172
+ "allGroups": "Todas",
173
+ "groupPlaceholder": "Grupo",
174
+ "subgroupPlaceholder": "Subgrupo",
175
+ "allSubgroups": "Todos os subgrupos"
176
+ }
177
+ },
128
178
  "UserPage": {
129
179
  "errorName": "O nome deve ter pelo menos 2 caracteres",
130
180
  "errorEmail": "Endereço de e-mail inválido",
@@ -242,7 +292,13 @@
242
292
  "buttonCopyPassword": "Copiar senha",
243
293
  "passwordCopied": "Senha copiada para a área de transferência.",
244
294
  "passwordCopyError": "Não foi possível copiar a senha.",
245
- "close": "Fechar"
295
+ "close": "Fechar",
296
+ "viewMode": "Visualização",
297
+ "viewModeTable": "Tabela",
298
+ "viewModeCards": "Cards",
299
+ "columnName": "Nome",
300
+ "columnEmail": "E-mail",
301
+ "columnStatus": "Status"
246
302
  },
247
303
  "RolePage": {
248
304
  "title": "Gerenciamento de Cargos",
@@ -1807,15 +1863,135 @@
1807
1863
  "grantedByRole": "Liberado por",
1808
1864
  "moreUsers": "+{count} usuários"
1809
1865
  },
1866
+ "IntegrationsWebhooksPage": {
1867
+ "title": "Integrações e Webhooks",
1868
+ "description": "Gerencie eventos, webhooks de entrada e webhooks de saída por evento.",
1869
+ "breadcrumbHome": "Dashboard",
1870
+ "breadcrumbManagement": "Gerenciamento",
1871
+ "statsEvents": "Eventos",
1872
+ "statsIncoming": "Webhooks de entrada",
1873
+ "statsEventWebhooks": "Webhooks de evento",
1874
+ "tabCatalog": "Catálogo",
1875
+ "tabIncoming": "Entrada",
1876
+ "tabEventWebhooks": "Saída",
1877
+ "newEvent": "Novo evento",
1878
+ "newIncoming": "Novo webhook de entrada",
1879
+ "newEventWebhook": "Novo webhook de evento",
1880
+ "searchEvents": "Buscar eventos...",
1881
+ "searchIncoming": "Buscar webhooks de entrada...",
1882
+ "searchEventWebhooks": "Buscar webhooks de evento...",
1883
+ "emptyEvents": "Nenhum evento cadastrado",
1884
+ "emptyEventsDescription": "Cadastre o primeiro evento para iniciar o catálogo.",
1885
+ "emptyIncoming": "Nenhum webhook de entrada cadastrado",
1886
+ "emptyIncomingDescription": "Cadastre um webhook de entrada para receber chamadas externas.",
1887
+ "emptyEventWebhooks": "Nenhum webhook de evento cadastrado",
1888
+ "emptyEventWebhooksDescription": "Cadastre um webhook para disparo automático por evento.",
1889
+ "eventName": "Evento",
1890
+ "name": "Nome",
1891
+ "technicalName": "Nome técnico",
1892
+ "module": "Módulo",
1893
+ "descriptionColumn": "Descrição",
1894
+ "status": "Status",
1895
+ "updatedAt": "Atualizado em",
1896
+ "actions": "Ações",
1897
+ "publicUrl": "URL pública",
1898
+ "security": "Segurança",
1899
+ "actionsCount": "Qtd. ações",
1900
+ "events": "Eventos",
1901
+ "httpTarget": "Destino HTTP",
1902
+ "retry": "Tentativas",
1903
+ "eventFormDescription": "Defina os dados do evento que poderá disparar integrações.",
1904
+ "incomingFormDescription": "Configure o endpoint público e ações para o webhook de entrada.",
1905
+ "eventWebhookFormDescription": "Configure o envio HTTP quando os eventos selecionados ocorrerem.",
1906
+ "requireToken": "Exigir token",
1907
+ "requireTokenHelp": "Quando ativo, cada chamada deve informar o token secreto.",
1908
+ "token": "Token",
1909
+ "uuid": "UUID",
1910
+ "oneTimeTokenTitle": "Token gerado",
1911
+ "oneTimeTokenDescription": "Copie agora. Este token é exibido apenas uma vez.",
1912
+ "tokenConfiguredTitle": "Token configurado",
1913
+ "tokenConfiguredDescription": "O token atual está ativo. Gere um novo se precisar rotacionar.",
1914
+ "tokenWillBeCreatedDescription": "O token será criado ao salvar este webhook.",
1915
+ "regenerateToken": "Gerar novo token",
1916
+ "allowedIps": "IPs permitidos",
1917
+ "ipAddress": "Endereço IP",
1918
+ "emptyAllowedIps": "Nenhum IP configurado. Qualquer origem poderá chamar o endpoint.",
1919
+ "addIp": "Adicionar IP",
1920
+ "bodySchema": "Schema do corpo",
1921
+ "regenerateUuid": "Gerar novo UUID",
1922
+ "actionSection": "Ações do webhook",
1923
+ "actionType": "Tipo de ação",
1924
+ "email": "E-mail",
1925
+ "whatsapp": "WhatsApp",
1926
+ "order": "Ordem",
1927
+ "mailProfile": "Perfil de e-mail",
1928
+ "mailTemplate": "Template de e-mail",
1929
+ "select": "Selecione",
1930
+ "emailTo": "E-mail para",
1931
+ "emailCc": "E-mail CC",
1932
+ "whatsappTargetType": "Tipo de destino WhatsApp",
1933
+ "phone": "Telefone",
1934
+ "group": "Grupo",
1935
+ "whatsappTarget": "Destino WhatsApp",
1936
+ "whatsappInstance": "Instância WhatsApp",
1937
+ "whatsappBaseUrl": "URL base WhatsApp",
1938
+ "whatsappToken": "Token WhatsApp",
1939
+ "whatsappTemplate": "Template WhatsApp",
1940
+ "addAction": "Adicionar ação",
1941
+ "incomingSheetTabSettings": "Configurações",
1942
+ "incomingSheetTabLogs": "Logs",
1943
+ "emptyIncomingLogs": "Nenhum log de execução",
1944
+ "emptyIncomingLogsDescription": "As tentativas de chamada aparecerão aqui com resultado por ação.",
1945
+ "incomingLogsLoading": "Carregando logs...",
1946
+ "logStatusSuccess": "Sucesso",
1947
+ "logStatusFailed": "Falha",
1948
+ "logDuration": "Duração",
1949
+ "logRemoteIp": "IP remoto",
1950
+ "logResponse": "Resposta",
1951
+ "method": "Método",
1952
+ "url": "URL",
1953
+ "timeout": "Timeout (ms)",
1954
+ "headers": "Headers",
1955
+ "query": "Query",
1956
+ "payload": "Payload",
1957
+ "active": "Ativo",
1958
+ "inactive": "Inativo",
1959
+ "save": "Salvar",
1960
+ "cancel": "Cancelar",
1961
+ "delete": "Excluir",
1962
+ "deleteTitle": "Confirmar exclusão",
1963
+ "deleteDescription": "Tem certeza que deseja excluir \"{name}\"? Esta ação não pode ser desfeita.",
1964
+ "created": "Criado com sucesso",
1965
+ "updated": "Atualizado com sucesso",
1966
+ "deleted": "Excluído com sucesso",
1967
+ "saveError": "Não foi possível salvar. Verifique os dados e tente novamente.",
1968
+ "deleteError": "Não foi possível excluir o item.",
1969
+ "tokenGenerated": "Token gerado com sucesso",
1970
+ "uuidRegenerated": "UUID regenerado com sucesso",
1971
+ "editEvent": "Editar evento",
1972
+ "editIncoming": "Editar webhook de entrada",
1973
+ "editEventWebhook": "Editar webhook de evento"
1974
+ },
1810
1975
  "McpChatPage": {
1811
1976
  "title": "Chat MCP",
1812
1977
  "description": "Converse com IA usando ferramentas MCP",
1813
1978
  "newConversation": "Nova Conversa",
1814
1979
  "conversations": "Conversas",
1980
+ "openConversations": "Abrir conversas",
1815
1981
  "placeholder": "Digite sua mensagem... (Enter para enviar, Shift+Enter para nova linha)",
1816
1982
  "send": "Enviar",
1817
1983
  "sending": "Enviando...",
1818
1984
  "noConversation": "Selecione ou crie uma conversa",
1985
+ "loadMessagesError": "Falha ao carregar as mensagens",
1986
+ "createConversationError": "Falha ao criar conversa",
1987
+ "sendMessageError": "Falha ao enviar mensagem",
1988
+ "uploadFileError": "Falha ao enviar arquivo",
1989
+ "deleteConversationSuccess": "Conversa excluida",
1990
+ "deleteConversationError": "Falha ao excluir conversa",
1991
+ "attachFile": "Anexar arquivo",
1992
+ "uploadingFile": "Enviando arquivo...",
1993
+ "removeAttachment": "Remover anexo",
1994
+ "attachedFilesPrefix": "Arquivos anexados:",
1819
1995
  "toolCalled": "Ferramenta chamada",
1820
1996
  "toolResult": "Resultado da ferramenta",
1821
1997
  "cancel": "Cancelar",
@@ -1824,5 +2000,68 @@
1824
2000
  "breadcrumbDashboard": "Painel",
1825
2001
  "breadcrumbManagement": "Gerenciamento",
1826
2002
  "breadcrumbCurrent": "Chat MCP"
2003
+ },
2004
+ "McpTokens": {
2005
+ "title": "Chaves de API MCP",
2006
+ "description": "Crie e gerencie tokens de acesso pessoal para autenticação no servidor MCP",
2007
+ "createToken": "Criar Token",
2008
+ "createTokenTitle": "Criar Chave de API MCP",
2009
+ "createTokenDescription": "Dê um nome ao seu token para identificá-lo depois",
2010
+ "tokenNameLabel": "Nome do Token",
2011
+ "tokenNamePlaceholder": "ex.: Claude Desktop",
2012
+ "tokenCreatedTitle": "Token Criado",
2013
+ "tokenCreatedWarning": "Este token é exibido apenas uma vez. Copie-o agora e guarde em local seguro.",
2014
+ "tokenCreatedLabel": "Sua nova chave de API MCP",
2015
+ "copyToken": "Copiar",
2016
+ "tokenCopied": "Copiado!",
2017
+ "closeDialog": "Fechar",
2018
+ "mcpUrlLabel": "URL do Servidor MCP",
2019
+ "copyUrl": "Copiar URL",
2020
+ "name": "Nome",
2021
+ "tokenPrefix": "Prefixo do Token",
2022
+ "lastUsed": "Último Uso",
2023
+ "createdAt": "Criado Em",
2024
+ "never": "Nunca",
2025
+ "noTokens": "Nenhuma chave de API MCP. Crie uma para conectar clientes externos.",
2026
+ "revoke": "Revogar",
2027
+ "revokeTokenTitle": "Revogar Chave de API",
2028
+ "revokeTokenDescription": "Esta chave deixará de funcionar imediatamente. Esta ação não pode ser desfeita.",
2029
+ "cancel": "Cancelar",
2030
+ "revokeConfirm": "Revogar Chave",
2031
+ "createSuccess": "Chave de API criada",
2032
+ "createFailure": "Falha ao criar a chave de API",
2033
+ "revokeSuccess": "Chave de API revogada",
2034
+ "revokeFailure": "Falha ao revogar a chave de API"
2035
+ },
2036
+ "McpFloatingChat": {
2037
+ "title": "Chat MCP",
2038
+ "openFullPage": "Abrir visão completa",
2039
+ "minimize": "Minimizar",
2040
+ "openChat": "Abrir Chat IA (Ctrl+/)",
2041
+ "inputPlaceholder": "Pergunte qualquer coisa...",
2042
+ "newConversation": "Nova conversa",
2043
+ "emptyState": "Inicie uma conversa com o assistente de IA.",
2044
+ "send": "Enviar",
2045
+ "sending": "Enviando...",
2046
+ "attachFile": "Anexar arquivo",
2047
+ "uploadingFile": "Enviando arquivo...",
2048
+ "removeAttachment": "Remover anexo",
2049
+ "createConversationError": "Falha ao iniciar conversa",
2050
+ "sendMessageError": "Falha ao enviar mensagem",
2051
+ "uploadFileError": "Falha ao enviar arquivo"
2052
+ },
2053
+ "Notification": {
2054
+ "title": "Notificações",
2055
+ "markAllRead": "Marcar todas como lidas",
2056
+ "empty": "Nenhuma notificação",
2057
+ "justNow": "Agora mesmo",
2058
+ "minutesAgo": "há {count}min",
2059
+ "hoursAgo": "há {count}h",
2060
+ "daysAgo": "há {count}d",
2061
+ "elapsed": "{time} decorrido",
2062
+ "inProgress": "Em andamento...",
2063
+ "completed": "Concluído",
2064
+ "clearAll": "Limpar todas as notificações",
2065
+ "failed": "Falhou"
1827
2066
  }
1828
2067
  }