@datatechsolutions/ui 3.3.0 → 3.5.0

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 (212) hide show
  1. package/dist/astrlabe/index.js +113 -113
  2. package/dist/astrlabe/index.mjs +6 -6
  3. package/dist/astrlabe/workflow-canvas.js +6 -6
  4. package/dist/astrlabe/workflow-canvas.mjs +5 -5
  5. package/dist/brand/index.js +0 -14
  6. package/dist/brand/index.js.map +1 -1
  7. package/dist/brand/index.mjs +0 -14
  8. package/dist/brand/index.mjs.map +1 -1
  9. package/dist/{chunk-2WXRRQM3.mjs → chunk-2MJAHST4.mjs} +554 -516
  10. package/dist/chunk-2MJAHST4.mjs.map +1 -0
  11. package/dist/{chunk-FAGDZEKM.js → chunk-2OZZH2IO.js} +2 -2
  12. package/dist/chunk-2OZZH2IO.js.map +1 -0
  13. package/dist/{chunk-SYNVNTLJ.mjs → chunk-3AY5HIQ6.mjs} +2 -2
  14. package/dist/chunk-3AY5HIQ6.mjs.map +1 -0
  15. package/dist/{chunk-O6M3KDGT.mjs → chunk-3OLYSMI5.mjs} +41 -7
  16. package/dist/chunk-3OLYSMI5.mjs.map +1 -0
  17. package/dist/{chunk-GIQXB3BG.mjs → chunk-4PFU6A2B.mjs} +3 -3
  18. package/dist/{chunk-GIQXB3BG.mjs.map → chunk-4PFU6A2B.mjs.map} +1 -1
  19. package/dist/{chunk-3ZUMJTDT.mjs → chunk-5BEVTOZV.mjs} +4 -5
  20. package/dist/{chunk-3JJWPOK6.js.map → chunk-5BEVTOZV.mjs.map} +1 -1
  21. package/dist/{chunk-3JJWPOK6.js → chunk-5I7F7KZ6.js} +10 -11
  22. package/dist/chunk-5I7F7KZ6.js.map +1 -0
  23. package/dist/{chunk-BR2GAZKG.mjs → chunk-6V3DUBOZ.mjs} +7 -7
  24. package/dist/{chunk-BR2GAZKG.mjs.map → chunk-6V3DUBOZ.mjs.map} +1 -1
  25. package/dist/{chunk-5GDKCFM5.mjs → chunk-6W7VTZG6.mjs} +3 -3
  26. package/dist/{chunk-5GDKCFM5.mjs.map → chunk-6W7VTZG6.mjs.map} +1 -1
  27. package/dist/{chunk-IJAKZHXX.js → chunk-74MHWEDC.js} +684 -645
  28. package/dist/chunk-74MHWEDC.js.map +1 -0
  29. package/dist/{chunk-IRPS5UCS.mjs → chunk-7CEZB3ZD.mjs} +3 -3
  30. package/dist/{chunk-IRPS5UCS.mjs.map → chunk-7CEZB3ZD.mjs.map} +1 -1
  31. package/dist/{chunk-UDDZTTLO.mjs → chunk-7UHV6A4C.mjs} +6 -7
  32. package/dist/chunk-7UHV6A4C.mjs.map +1 -0
  33. package/dist/{chunk-ZM5MVWIT.js → chunk-A7FI4K7Z.js} +5 -6
  34. package/dist/chunk-A7FI4K7Z.js.map +1 -0
  35. package/dist/{chunk-MWPTSBAI.js → chunk-AVM53A3Y.js} +63 -29
  36. package/dist/chunk-AVM53A3Y.js.map +1 -0
  37. package/dist/{chunk-I2NZGVBG.js → chunk-AWDH6WNA.js} +1214 -5396
  38. package/dist/chunk-AWDH6WNA.js.map +1 -0
  39. package/dist/{chunk-ZJPNP2YW.mjs → chunk-BUDZNAKL.mjs} +2 -2
  40. package/dist/chunk-BUDZNAKL.mjs.map +1 -0
  41. package/dist/{chunk-OCELRSLO.js → chunk-BVXATTTA.js} +4 -4
  42. package/dist/{chunk-OCELRSLO.js.map → chunk-BVXATTTA.js.map} +1 -1
  43. package/dist/{chunk-W5OEBO6E.js → chunk-C4NRF2G2.js} +13 -14
  44. package/dist/chunk-C4NRF2G2.js.map +1 -0
  45. package/dist/{chunk-JSNRCYSO.js → chunk-CY2MBKVG.js} +4 -4
  46. package/dist/{chunk-JSNRCYSO.js.map → chunk-CY2MBKVG.js.map} +1 -1
  47. package/dist/{chunk-ZL6C2ZAF.js → chunk-FK3WDELF.js} +67 -67
  48. package/dist/{chunk-ZL6C2ZAF.js.map → chunk-FK3WDELF.js.map} +1 -1
  49. package/dist/{chunk-MVBIAXVN.mjs → chunk-IOEQ2GET.mjs} +14 -11
  50. package/dist/chunk-IOEQ2GET.mjs.map +1 -0
  51. package/dist/{chunk-AOUUZ52N.js → chunk-NCDBNGIB.js} +85 -86
  52. package/dist/chunk-NCDBNGIB.js.map +1 -0
  53. package/dist/{chunk-B67DP7MI.mjs → chunk-NJ5RVWLA.mjs} +4 -4
  54. package/dist/{chunk-B67DP7MI.mjs.map → chunk-NJ5RVWLA.mjs.map} +1 -1
  55. package/dist/{chunk-HDCUWUNH.js → chunk-NKXQYFS7.js} +28 -27
  56. package/dist/chunk-NKXQYFS7.js.map +1 -0
  57. package/dist/{chunk-JN6IL6OH.mjs → chunk-NOHHZ6FM.mjs} +1171 -5316
  58. package/dist/chunk-NOHHZ6FM.mjs.map +1 -0
  59. package/dist/{chunk-PCYL4MII.mjs → chunk-OASC7NYV.mjs} +156 -314
  60. package/dist/chunk-OASC7NYV.mjs.map +1 -0
  61. package/dist/{chunk-RXZNACMI.js → chunk-P43PX75J.js} +33 -33
  62. package/dist/{chunk-RXZNACMI.js.map → chunk-P43PX75J.js.map} +1 -1
  63. package/dist/{chunk-OL73LBX5.mjs → chunk-QLFSJ6HK.mjs} +3 -4
  64. package/dist/chunk-QLFSJ6HK.mjs.map +1 -0
  65. package/dist/{chunk-LEKZUS6N.mjs → chunk-QPSHM2JQ.mjs} +4 -5
  66. package/dist/chunk-QPSHM2JQ.mjs.map +1 -0
  67. package/dist/{chunk-NJFRJ6YD.js → chunk-QSMPKL27.js} +225 -384
  68. package/dist/chunk-QSMPKL27.js.map +1 -0
  69. package/dist/{chunk-ZV5EZXXO.mjs → chunk-RHRJXK5R.mjs} +3 -3
  70. package/dist/{chunk-ZV5EZXXO.mjs.map → chunk-RHRJXK5R.mjs.map} +1 -1
  71. package/dist/{chunk-F54Q2YJY.js → chunk-SY4MUT5V.js} +7 -7
  72. package/dist/{chunk-F54Q2YJY.js.map → chunk-SY4MUT5V.js.map} +1 -1
  73. package/dist/{chunk-5RM6NGZ6.mjs → chunk-UHMAKUON.mjs} +3 -3
  74. package/dist/{chunk-5RM6NGZ6.mjs.map → chunk-UHMAKUON.mjs.map} +1 -1
  75. package/dist/{chunk-TIJJHW2Z.js → chunk-V5VBYOF5.js} +36 -36
  76. package/dist/{chunk-TIJJHW2Z.js.map → chunk-V5VBYOF5.js.map} +1 -1
  77. package/dist/{chunk-KR2X2WHJ.js → chunk-VMGNQFRO.js} +53 -53
  78. package/dist/{chunk-KR2X2WHJ.js.map → chunk-VMGNQFRO.js.map} +1 -1
  79. package/dist/{chunk-HZ4LOVHM.js → chunk-VY52Y5GC.js} +2 -2
  80. package/dist/chunk-VY52Y5GC.js.map +1 -0
  81. package/dist/{chunk-TVMLV675.js → chunk-Z7VY5M4T.js} +98 -95
  82. package/dist/chunk-Z7VY5M4T.js.map +1 -0
  83. package/dist/{chunk-R4TQWXNG.mjs → chunk-ZM2Q2SMC.mjs} +6 -5
  84. package/dist/chunk-ZM2Q2SMC.mjs.map +1 -0
  85. package/dist/index.js +744 -904
  86. package/dist/index.mjs +4 -4
  87. package/dist/platform/admin/index.js +13 -13
  88. package/dist/platform/admin/index.mjs +7 -7
  89. package/dist/platform/agents-workspace.js +9 -9
  90. package/dist/platform/agents-workspace.mjs +8 -8
  91. package/dist/platform/app-shell.js +6 -6
  92. package/dist/platform/app-shell.mjs +5 -5
  93. package/dist/platform/auth/index.js +30 -30
  94. package/dist/platform/auth/index.mjs +7 -7
  95. package/dist/platform/billing/index.js +6 -6
  96. package/dist/platform/billing/index.mjs +5 -5
  97. package/dist/platform/impersonation/index.js +6 -6
  98. package/dist/platform/impersonation/index.mjs +5 -5
  99. package/dist/platform/index.js +102 -4812
  100. package/dist/platform/index.js.map +1 -1
  101. package/dist/platform/index.mjs +24 -4729
  102. package/dist/platform/index.mjs.map +1 -1
  103. package/dist/platform/pages/index.js +320 -204
  104. package/dist/platform/pages/index.js.map +1 -1
  105. package/dist/platform/pages/index.mjs +146 -30
  106. package/dist/platform/pages/index.mjs.map +1 -1
  107. package/dist/platform/rbac.js +2 -2
  108. package/dist/platform/rbac.mjs +1 -1
  109. package/dist/platform/settings/index.js +10 -10
  110. package/dist/platform/settings/index.mjs +9 -9
  111. package/dist/platform/utils/index.js +3 -3
  112. package/dist/platform/utils/index.js.map +1 -1
  113. package/dist/platform/utils/index.mjs +1 -1
  114. package/dist/platform/utils/index.mjs.map +1 -1
  115. package/dist/platform/workflow-api-client.js +62 -62
  116. package/dist/platform/workflow-api-client.mjs +2 -2
  117. package/dist/platform/workflow-canvas-shell.js +7 -7
  118. package/dist/platform/workflow-canvas-shell.mjs +6 -6
  119. package/package.json +15 -5
  120. package/src/styles/liquid-glass.css +283 -2
  121. package/dist/astrlabe/contracts.d.mts +0 -517
  122. package/dist/astrlabe/contracts.d.ts +0 -517
  123. package/dist/astrlabe/graph-node.d.mts +0 -28
  124. package/dist/astrlabe/graph-node.d.ts +0 -28
  125. package/dist/astrlabe/index.d.mts +0 -751
  126. package/dist/astrlabe/index.d.ts +0 -751
  127. package/dist/astrlabe/utils.d.mts +0 -60
  128. package/dist/astrlabe/utils.d.ts +0 -60
  129. package/dist/astrlabe/workflow-canvas.d.mts +0 -69
  130. package/dist/astrlabe/workflow-canvas.d.ts +0 -69
  131. package/dist/astrlabe/workflow-preview-canvas.d.mts +0 -10
  132. package/dist/astrlabe/workflow-preview-canvas.d.ts +0 -10
  133. package/dist/billing-panel-DsHhhJqG.d.mts +0 -18
  134. package/dist/billing-panel-DsHhhJqG.d.ts +0 -18
  135. package/dist/brand/index.d.mts +0 -85
  136. package/dist/brand/index.d.ts +0 -85
  137. package/dist/chunk-2WXRRQM3.mjs.map +0 -1
  138. package/dist/chunk-3ZUMJTDT.mjs.map +0 -1
  139. package/dist/chunk-AOUUZ52N.js.map +0 -1
  140. package/dist/chunk-FAGDZEKM.js.map +0 -1
  141. package/dist/chunk-HDCUWUNH.js.map +0 -1
  142. package/dist/chunk-HZ4LOVHM.js.map +0 -1
  143. package/dist/chunk-I2NZGVBG.js.map +0 -1
  144. package/dist/chunk-IJAKZHXX.js.map +0 -1
  145. package/dist/chunk-JN6IL6OH.mjs.map +0 -1
  146. package/dist/chunk-LEKZUS6N.mjs.map +0 -1
  147. package/dist/chunk-MVBIAXVN.mjs.map +0 -1
  148. package/dist/chunk-MWPTSBAI.js.map +0 -1
  149. package/dist/chunk-NJFRJ6YD.js.map +0 -1
  150. package/dist/chunk-O6M3KDGT.mjs.map +0 -1
  151. package/dist/chunk-OL73LBX5.mjs.map +0 -1
  152. package/dist/chunk-PCYL4MII.mjs.map +0 -1
  153. package/dist/chunk-R4TQWXNG.mjs.map +0 -1
  154. package/dist/chunk-SYNVNTLJ.mjs.map +0 -1
  155. package/dist/chunk-TVMLV675.js.map +0 -1
  156. package/dist/chunk-UDDZTTLO.mjs.map +0 -1
  157. package/dist/chunk-W5OEBO6E.js.map +0 -1
  158. package/dist/chunk-ZJPNP2YW.mjs.map +0 -1
  159. package/dist/chunk-ZM5MVWIT.js.map +0 -1
  160. package/dist/dynamic-island-confirm-BKsZkAEP.d.mts +0 -17
  161. package/dist/dynamic-island-confirm-BKsZkAEP.d.ts +0 -17
  162. package/dist/index-CoB18TbG.d.ts +0 -215
  163. package/dist/index-VI9gyJXl.d.mts +0 -215
  164. package/dist/index.d.mts +0 -5412
  165. package/dist/index.d.ts +0 -5412
  166. package/dist/layout-engine-YZcVr20M.d.mts +0 -19
  167. package/dist/layout-engine-YZcVr20M.d.ts +0 -19
  168. package/dist/lib/i18n-context.d.mts +0 -36
  169. package/dist/lib/i18n-context.d.ts +0 -36
  170. package/dist/lib/router-context.d.mts +0 -35
  171. package/dist/lib/router-context.d.ts +0 -35
  172. package/dist/navigation-BiWVffAN.d.mts +0 -49
  173. package/dist/navigation-BiWVffAN.d.ts +0 -49
  174. package/dist/platform/admin/index.d.mts +0 -17
  175. package/dist/platform/admin/index.d.ts +0 -17
  176. package/dist/platform/agents-workspace.d.mts +0 -19
  177. package/dist/platform/agents-workspace.d.ts +0 -19
  178. package/dist/platform/app-shell.d.mts +0 -58
  179. package/dist/platform/app-shell.d.ts +0 -58
  180. package/dist/platform/auth/index.d.mts +0 -73
  181. package/dist/platform/auth/index.d.ts +0 -73
  182. package/dist/platform/billing/index.d.mts +0 -29
  183. package/dist/platform/billing/index.d.ts +0 -29
  184. package/dist/platform/impersonation/index.d.mts +0 -19
  185. package/dist/platform/impersonation/index.d.ts +0 -19
  186. package/dist/platform/index.d.mts +0 -224
  187. package/dist/platform/index.d.ts +0 -224
  188. package/dist/platform/pages/index.d.mts +0 -432
  189. package/dist/platform/pages/index.d.ts +0 -432
  190. package/dist/platform/rbac.d.mts +0 -41
  191. package/dist/platform/rbac.d.ts +0 -41
  192. package/dist/platform/settings/index.d.mts +0 -31
  193. package/dist/platform/settings/index.d.ts +0 -31
  194. package/dist/platform/telemetry/index.d.mts +0 -51
  195. package/dist/platform/telemetry/index.d.ts +0 -51
  196. package/dist/platform/utils/index.d.mts +0 -32
  197. package/dist/platform/utils/index.d.ts +0 -32
  198. package/dist/platform/windsock-admin-client.d.mts +0 -57
  199. package/dist/platform/windsock-admin-client.d.ts +0 -57
  200. package/dist/platform/workflow-api-client.d.mts +0 -6
  201. package/dist/platform/workflow-api-client.d.ts +0 -6
  202. package/dist/platform/workflow-canvas-shell.d.mts +0 -18
  203. package/dist/platform/workflow-canvas-shell.d.ts +0 -18
  204. package/dist/rule-form-BYJzyork.d.mts +0 -128
  205. package/dist/rule-form-BYJzyork.d.ts +0 -128
  206. package/dist/workflow-api-client-BKD8OfP_.d.ts +0 -468
  207. package/dist/workflow-api-client-DoYj7nHz.d.mts +0 -468
  208. package/dist/workflow-store-o17I6L6A.d.ts +0 -79
  209. package/dist/workflow-store-ppVHdMZi.d.mts +0 -79
  210. package/src/brand/logos/kori-icon.svg +0 -45
  211. package/src/brand/logos/kori-logo-dark.svg +0 -40
  212. package/src/brand/logos/kori-logo.svg +0 -43
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/platform/session-switcher.tsx","../../src/platform/dock-container.tsx","../../src/hooks/use-locale-switcher.ts","../../src/platform/preferences-controls.tsx","../../src/platform/windsock-mappers.ts","../../src/platform/admin-settings-sections.tsx","../../src/platform/ai-workflow-generate-modal.tsx","../../src/platform/workflow-template-modal.tsx","../../src/platform/kori-demo/department-data.ts","../../src/platform/kori-demo/department-dashboard.tsx","../../src/platform/kori-demo/agent-avatars.ts","../../src/platform/kori-demo/messages/en.json","../../src/platform/kori-demo/messages/pt-BR.json","../../src/platform/kori-demo/messages/de.json","../../src/platform/kori-demo/messages/es.json","../../src/platform/kori-demo/messages/fr.json","../../src/platform/kori-demo/messages/it.json","../../src/platform/kori-demo/messages.ts","../../src/platform/kori-demo/index.tsx"],"names":["jsxs","jsx","useWindsockAuth","useCallback","SUPPORTED_LOCALES","usePlatformPreferences","useState","useEffect","useMemo","Fragment","SparklesIcon"],"mappings":"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","file":"index.mjs","sourcesContent":["import { Select, Button } from '@ui/index'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport type { SessionSwitcherProps } from '@datatechsolutions/shared-domain/common'\n\nexport function SessionSwitcher({\n organizations,\n users,\n organizationId,\n userEmail,\n onOrganizationChange,\n onUserChange,\n}: SessionSwitcherProps) {\n const tSession = useTranslations('platform.session')\n const tCommon = useTranslations('common')\n\n return (\n <div className=\"session-switcher\">\n <Select\n value={organizationId}\n aria-label={tSession('organization')}\n onChange={(event) => {\n onOrganizationChange(event.target.value)\n }}\n options={organizations}\n placeholder={tSession('organization')}\n />\n <Select\n value={userEmail}\n aria-label={tSession('user')}\n onChange={(event) => {\n onUserChange(event.target.value)\n }}\n options={users}\n placeholder={tSession('user')}\n />\n <Button outline onClick={() => globalThis.location.reload()}>\n {tCommon('refresh')}\n </Button>\n </div>\n )\n}\n","import { useMemo, useState, useCallback } from 'react'\nimport { useAuth, usePlatformPreferences } from '@datatechsolutions/windsock/client'\nimport type { AuthUser } from '@datatechsolutions/windsock/client'\nimport {\n AppNavigation,\n filterByPermission,\n GlassModal,\n type NavigationItem,\n} from '@ui/index'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport { usePathname, useRouter } from '@ui/lib/router-context'\n\nexport type PlatformDockContainerProps = {\n /** JWT-derived actor used for permission filtering. */\n actor: AuthUser | null\n /** App-specific navigation items (already translated). */\n navigationItems: NavigationItem[]\n /**\n * Pathname where the dock should be hidden (defaults to `/dashboard`).\n * The dashboard typically owns its own navigation chrome.\n */\n dashboardPath?: string\n /** Path to redirect to on sign-out (defaults to `/login`). */\n signOutPath?: string\n}\n\n/**\n * Floating dock + profile-modal trigger shared by every platform app.\n * Reads the active route from ui's router context and uses windsock for\n * preferences + sign-out, so the consumer only has to wire up navigation\n * items + an optional dashboard/sign-out path.\n */\nexport function PlatformDockContainer({\n actor,\n navigationItems,\n dashboardPath = '/dashboard',\n signOutPath = '/login',\n}: PlatformDockContainerProps) {\n const pathname = usePathname()\n const router = useRouter()\n const { logout } = useAuth()\n const tCommon = useTranslations('common')\n const {\n dockPosition,\n dockAutoHide,\n dockEnabled,\n } = usePlatformPreferences()\n const [profileOpen, setProfileOpen] = useState(false)\n\n const filteredItems = useMemo(\n () => filterByPermission(navigationItems, (actor as { permissions?: string[] } | null)?.permissions ?? []),\n [navigationItems, actor],\n )\n\n const handleNavigate = useCallback((href: string) => router.push(href), [router])\n const handleSignOut = useCallback(() => { void logout(signOutPath) }, [logout, signOutPath])\n\n if (pathname === dashboardPath) return null\n\n return (\n <>\n <AppNavigation\n items={filteredItems}\n pathname={pathname}\n dockEnabled={dockEnabled}\n dockPosition={dockPosition as 'left' | 'right' | 'bottom'}\n dockAutoHide={dockAutoHide}\n showLaunchpad={false}\n onNavigate={handleNavigate}\n onOpenProfile={() => setProfileOpen(true)}\n onSignOut={handleSignOut}\n labels={{\n home: tCommon('home'),\n profile: tCommon('profile'),\n signOut: tCommon('signOut'),\n }}\n />\n <GlassModal\n open={profileOpen}\n onClose={() => setProfileOpen(false)}\n title={tCommon('profile')}\n >\n <div />\n </GlassModal>\n </>\n )\n}\n","import { useCallback } from 'react'\nimport { useAuth as useWindsockAuth } from '@datatechsolutions/windsock/client'\nimport type { LocaleCode } from '@datatechsolutions/shared-domain/common'\nimport {\n applyClientLocale,\n LOCALE_TO_SHORT,\n SUPPORTED_LOCALES,\n} from '@datatechsolutions/shared-domain/i18n'\nimport { useLocale } from '@ui/lib/i18n-context'\n\n/**\n * Locale switcher hook — reads the current locale from the i18n context and\n * pushes the user's choice through windsock so the next session inherits it.\n *\n * Lifted from astrlabe; consumers (astrlabe, kori-erp) wrap their tree in\n * `<I18nProvider>` + windsock's `<AuthProvider>` and import this directly.\n */\nexport function useLocaleSwitcher() {\n const locale = useLocale() as LocaleCode\n const { client } = useWindsockAuth()\n\n const setLocale = useCallback(\n (newLocale: LocaleCode | string) => {\n const resolved = applyClientLocale(newLocale)\n client.updateLocale(resolved)\n },\n [client],\n )\n\n return {\n locale,\n shortCode: LOCALE_TO_SHORT[locale] || 'pt',\n setLocale,\n locales: SUPPORTED_LOCALES,\n }\n}\n","import { MoonIcon, SunIcon } from '@heroicons/react/24/outline'\nimport { Select, IconButton } from '@ui/index'\nimport { SUPPORTED_LOCALES, LANGUAGE_META } from '@datatechsolutions/shared-domain/i18n'\nimport { usePlatformPreferences } from '@datatechsolutions/windsock/client'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport { useLocaleSwitcher } from '@ui/hooks/use-locale-switcher'\n\nconst LOCALE_OPTIONS = SUPPORTED_LOCALES.map((code) => ({\n value: code,\n label: LANGUAGE_META[code].nativeName,\n}))\n\n/**\n * Locale + theme controls used inside the platform preferences drawer.\n * Reads the active locale from the i18n context and the theme/dock\n * preferences from windsock — both shared providers consuming apps must\n * mount above this component.\n */\nexport function PreferencesControls() {\n const { locale, setLocale } = useLocaleSwitcher()\n const { theme, setTheme } = usePlatformPreferences()\n const toggleTheme = () => setTheme(theme === 'dark' ? 'light' : 'dark')\n const t = useTranslations('platform.preferences')\n\n return (\n <div className=\"preferences-controls\">\n <Select\n value={locale}\n options={LOCALE_OPTIONS}\n onChange={(event) => setLocale(event.target.value)}\n />\n <IconButton\n label={t('theme')}\n icon={theme === 'dark' ? <SunIcon /> : <MoonIcon />}\n onClick={toggleTheme}\n variant=\"outline\"\n />\n </div>\n )\n}\n","import type {\n AdminUserSummary,\n AuthOrganization,\n} from '@datatechsolutions/shared-domain'\nimport type { ManagedUser, Organization, UserRole } from '@datatechsolutions/shared-domain/common'\n\n/** Maps a windsock AuthOrganization to the app-level Organization shape used by UI pages. */\nexport function mapAuthOrg(raw: AuthOrganization): Organization {\n return {\n id: raw.id,\n name: raw.displayName ?? raw.name,\n currency: 'BRL',\n country: 'BR',\n } as Organization\n}\n\n/**\n * Maps a windsock AdminUserSummary to the app-level ManagedUser shape.\n * Takes `normalizeRole` as a parameter so each consuming app can plug in\n * the role normalizer produced by its own `createPlatformRbac()` call —\n * we deliberately don't hardcode an app-specific role enum here.\n */\nexport function mapAdminUser(\n row: AdminUserSummary,\n normalizeRole: (input: unknown) => string,\n): ManagedUser {\n return {\n id: row.id,\n email: row.email,\n name: row.name ?? row.email,\n role: normalizeRole(row.role) as UserRole,\n active: row.status === 'active',\n }\n}\n\n/** Maps an app-level UserRole to a windsock AuthOrganizationRole. */\nexport const ORG_ROLE_MAP: Record<string, 'owner' | 'admin' | 'member' | 'viewer'> = {\n owner: 'owner',\n admin: 'admin',\n manager: 'admin',\n analyst: 'member',\n operator: 'member',\n viewer: 'viewer',\n finance: 'member',\n sales: 'member',\n support: 'member',\n member: 'member',\n}\n\nexport function mapRoleToOrgRole(role: string): 'owner' | 'admin' | 'member' | 'viewer' {\n return ORG_ROLE_MAP[role] ?? 'member'\n}\n","import { useEffect, useState } from 'react'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport { useNotifications } from '@ui/components/notifications'\nimport type { ManagedUser } from '@datatechsolutions/shared-domain/common'\nimport {\n listUsers,\n createUser as createUserApi,\n addOrganizationMember,\n} from './windsock-admin-client'\nimport { mapAdminUser, mapRoleToOrgRole } from './windsock-mappers'\nimport { UsersPageView } from './pages/users-page-view'\nimport { RolesPageView } from './pages/roles-page-view'\nimport { usePlatformState } from './platform-state-provider'\nimport type { PlatformRoleDefinition } from './rbac'\n\nexport type UsersSettingsSectionProps = {\n /**\n * Role normalizer produced by each app's `createPlatformRbac()` call.\n * Used to coerce JWT role strings into the app's canonical role enum.\n */\n normalizeRole: (input: unknown) => string\n}\n\nexport type RolesSettingsSectionProps = UsersSettingsSectionProps & {\n /** App-defined role definitions (from `createPlatformRbac`). */\n roleDefinitions: Record<string, PlatformRoleDefinition<string>>\n /** Display options for the role-assignment select. */\n roleOptions: Array<{ value: string; label: string }>\n}\n\nexport function UsersSettingsSection({ normalizeRole }: UsersSettingsSectionProps) {\n const t = useTranslations('platform.users')\n const { currentOrganizationId } = usePlatformState()\n const { error: notifyError, success: notifySuccess } = useNotifications()\n const [users, setUsers] = useState<ManagedUser[]>([])\n const [loading, setLoading] = useState(true)\n\n const reload = async () => {\n try {\n const result = await listUsers({ organizationId: currentOrganizationId })\n setUsers(result.items.map((row) => mapAdminUser(row, normalizeRole)))\n } catch (error) {\n notifyError((error as Error).message)\n } finally {\n setLoading(false)\n }\n }\n\n useEffect(() => {\n void reload()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentOrganizationId])\n\n return (\n <UsersPageView\n labels={{\n title: t('title'),\n subtitle: t('subtitle'),\n create: t('create'),\n list: t('list'),\n add: t('add'),\n statusActive: t('statusActive'),\n statusInactive: t('statusInactive'),\n name: t('name'),\n email: t('email'),\n role: t('role'),\n status: t('status'),\n save: t('save'),\n userNamePlaceholder: t('userNamePlaceholder'),\n userEmailPlaceholder: t('userEmailPlaceholder'),\n }}\n users={loading ? [] : users}\n onCreateUser={async ({ name, email, role }) => {\n try {\n await createUserApi({ name, email, role: role as never, organizationId: currentOrganizationId })\n notifySuccess(t('add'))\n await reload()\n } catch (error) {\n notifyError((error as Error).message)\n }\n }}\n onUpdateRole={() => {\n notifyError(t('reassignInRolesTab'))\n }}\n />\n )\n}\n\nexport function RolesSettingsSection({ roleDefinitions, roleOptions, normalizeRole }: RolesSettingsSectionProps) {\n const t = useTranslations('platform.roles')\n const { currentOrganizationId } = usePlatformState()\n const { error: notifyError, success: notifySuccess } = useNotifications()\n const [users, setUsers] = useState<ManagedUser[]>([])\n\n useEffect(() => {\n listUsers({ organizationId: currentOrganizationId })\n .then((result) => setUsers(result.items.map((row) => mapAdminUser(row, normalizeRole))))\n .catch((error: Error) => notifyError(error.message))\n }, [currentOrganizationId, notifyError, normalizeRole])\n\n return (\n <RolesPageView\n roleDefinitions={roleDefinitions}\n roleOptions={roleOptions}\n labels={{\n title: t('title'),\n subtitle: t('subtitle'),\n definitions: t('definitions'),\n assign: t('assign'),\n current: t('current'),\n permissionsEnabled: t('permissionsEnabled'),\n apply: t('apply'),\n role: t('role'),\n description: t('description'),\n user: t('user'),\n email: t('email'),\n userEmail: t('userEmail'),\n }}\n users={users}\n onAssignRole={async ({ email, role }) => {\n const target = users.find((user) => user.email.toLowerCase() === email.toLowerCase())\n if (!target) {\n notifyError(t('userNotFound'))\n return\n }\n try {\n await addOrganizationMember(currentOrganizationId, target.id, mapRoleToOrgRole(role))\n notifySuccess(t('apply'))\n } catch (error) {\n notifyError((error as Error).message)\n }\n }}\n />\n )\n}\n","import { useEffect, useState } from 'react'\nimport { GlassModal, Textarea } from '@ui/index'\nimport { useNotifications } from '@ui/components/notifications'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport type { Workflow } from '@ui/astrlabe/contracts'\nimport {\n aiGenerateWorkflow,\n createWorkflow,\n listModelProviderConnections,\n saveWorkflowDraft,\n type ModelProviderConnection,\n} from './workflow-api-client'\n\ninterface Props {\n open: boolean\n onClose: () => void\n onGenerated: (workflow: Workflow) => void\n}\n\n/**\n * Minimal NL → graph generator surface. Lets the user pick one of the\n * org's model provider connections, enter a prompt, and produces a\n * Workflow row whose `graph` is the LLM's output. The caller navigates\n * the editor to the new workflow once generation succeeds — validation\n * issues are surfaced as notifications so the user can iterate.\n */\nexport function AiWorkflowGenerateModal({ open, onClose, onGenerated }: Props) {\n const { error: notifyError, success: notifySuccess } = useNotifications()\n const t = useTranslations('agents.workflow')\n const [connections, setConnections] = useState<ModelProviderConnection[]>([])\n const [connectionId, setConnectionId] = useState('')\n const [prompt, setPrompt] = useState('')\n const [busy, setBusy] = useState(false)\n\n useEffect(() => {\n if (!open) return\n listModelProviderConnections()\n .then((items) => {\n setConnections(items)\n const firstEnabled = items.find((item) => item.enabled) ?? items[0]\n setConnectionId(firstEnabled?.id ?? '')\n })\n .catch((error: Error) => notifyError(error.message))\n }, [open, notifyError])\n\n async function handleSubmit() {\n if (!connectionId) { notifyError(t('aiErrorMissingConnection')); return }\n if (prompt.trim().length === 0) { notifyError(t('aiErrorMissingPrompt')); return }\n setBusy(true)\n try {\n const generation = await aiGenerateWorkflow({ prompt: prompt.trim(), connectionId })\n const workflow = await createWorkflow({ name: deriveWorkflowName(prompt) })\n const saved = await saveWorkflowDraft(workflow.id, generation.graph, { name: workflow.name })\n if (!generation.ok) {\n notifyError(\n t('aiWarnValidation'),\n [...generation.structuralIssues, ...generation.nodeIssues.map((issue) => `${issue.nodeId}: ${issue.message}`)].join('\\n'),\n )\n } else {\n notifySuccess(t('aiSuccessGenerated'))\n }\n onGenerated(saved)\n onClose()\n setPrompt('')\n } catch (error) {\n notifyError((error as Error).message)\n } finally {\n setBusy(false)\n }\n }\n\n return (\n <GlassModal\n open={open}\n onClose={onClose}\n title={t('aiTitle')}\n subtitle={t('aiSubtitle')}\n onSubmit={handleSubmit}\n showFormFooter\n submitLabel={busy ? t('aiGenerateBusy') : t('aiGenerate')}\n cancelLabel={t('aiCancel')}\n submitDisabled={busy}\n isLoading={busy}\n >\n <div className=\"space-y-4\">\n <label className=\"block text-sm font-medium text-slate-700 dark:text-slate-200\">\n {t('aiConnection')}\n <select\n className=\"mt-1 w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 dark:border-white/10 dark:bg-white/5 dark:text-slate-100\"\n value={connectionId}\n onChange={(event) => setConnectionId(event.target.value)}\n disabled={busy}\n >\n <option value=\"\">{t('aiConnectionPlaceholder')}</option>\n {connections.map((connection) => (\n <option key={connection.id} value={connection.id}>\n {connection.name} {connection.enabled ? '' : t('aiDisabledSuffix')}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block text-sm font-medium text-slate-700 dark:text-slate-200\">\n {t('aiPromptLabel')}\n <Textarea\n rows={6}\n className=\"mt-1 w-full\"\n placeholder={t('aiPromptPlaceholder')}\n value={prompt}\n onChange={(event) => setPrompt(event.target.value)}\n disabled={busy}\n />\n </label>\n\n <p className=\"text-xs text-slate-500 dark:text-slate-400\">\n {t('aiFooterNote')}\n </p>\n </div>\n </GlassModal>\n )\n}\n\nfunction deriveWorkflowName(prompt: string): string {\n const trimmed = prompt.trim().replace(/\\s+/g, ' ')\n if (trimmed.length <= 60) return trimmed\n return `${trimmed.slice(0, 57)}…`\n}\n","/**\n * WorkflowTemplateModal\n * =====================\n *\n * Lets the user instantiate a pre-built workflow template (e.g. the\n * product-pricing dashboard flow) from the workflows list page. The template\n * requires a `connectionId` that references one of the org's\n * `model_provider_connections` rows — we load the list on open so the\n * picker is always fresh.\n *\n * Why not inline in `workflows-page-client.tsx`? Two reasons:\n * 1. Keeps the modal focused: one component, one responsibility.\n * 2. Makes the flow testable end-to-end without mounting the whole page.\n */\n\n'use client'\n\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { GlassModal } from '@ui/index'\nimport { useNotifications } from '@ui/components/notifications'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport {\n createWorkflowFromTemplate,\n listModelProviderConnections,\n listWorkflowTemplates,\n type ModelProviderConnection,\n type WorkflowTemplateSummary,\n} from './workflow-api-client'\nimport type { Workflow } from '@ui/astrlabe/contracts'\n\nexport interface WorkflowTemplateModalProps {\n open: boolean\n onClose: () => void\n onCreated: (workflow: Workflow) => void\n}\n\nexport function WorkflowTemplateModal({ open, onClose, onCreated }: WorkflowTemplateModalProps) {\n const tWorkflow = useTranslations('agents.workflow')\n const tCommon = useTranslations('common')\n const { error: notifyError, success: notifySuccess } = useNotifications()\n\n const [templates, setTemplates] = useState<WorkflowTemplateSummary[]>([])\n const [connections, setConnections] = useState<ModelProviderConnection[]>([])\n const [templateId, setTemplateId] = useState<string>('')\n const [connectionId, setConnectionId] = useState<string>('')\n const [name, setName] = useState<string>('')\n const [isLoading, setIsLoading] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n // Load templates + connections when the modal opens. Clear prior state so\n // reopening feels fresh.\n useEffect(() => {\n if (!open) return\n let cancelled = false\n setIsLoading(true)\n setTemplateId('')\n setConnectionId('')\n setName('')\n ;(async () => {\n try {\n const [tpls, conns] = await Promise.all([\n listWorkflowTemplates(),\n listModelProviderConnections(),\n ])\n if (cancelled) return\n setTemplates(tpls)\n setConnections(conns)\n if (tpls.length > 0) {\n const firstTemplate = tpls[0]\n if (firstTemplate) setTemplateId(firstTemplate.id)\n }\n if (conns.length > 0) {\n const firstConnection = conns[0]\n if (firstConnection) setConnectionId(firstConnection.id)\n }\n } catch (error) {\n if (!cancelled) notifyError((error as Error).message)\n } finally {\n if (!cancelled) setIsLoading(false)\n }\n })()\n return () => {\n cancelled = true\n }\n }, [open, notifyError])\n\n const selectedTemplate = useMemo(\n () => templates.find((t) => t.id === templateId),\n [templates, templateId],\n )\n\n const canSubmit =\n !isLoading && !isSubmitting && templateId.length > 0 && connectionId.length > 0\n\n const handleSubmit = useCallback(async () => {\n if (!canSubmit) return\n setIsSubmitting(true)\n try {\n const created = await createWorkflowFromTemplate(templateId, {\n connectionId,\n name: name.trim().length > 0 ? name.trim() : undefined,\n })\n notifySuccess(tWorkflow('templateCreatedSuccess'))\n onCreated(created)\n onClose()\n } catch (error) {\n notifyError((error as Error).message)\n } finally {\n setIsSubmitting(false)\n }\n }, [canSubmit, templateId, connectionId, name, onCreated, onClose, notifySuccess, notifyError, tWorkflow])\n\n return (\n <GlassModal\n open={open}\n onClose={onClose}\n title={tWorkflow('createFromTemplate')}\n subtitle={selectedTemplate?.description ?? tWorkflow('createFromTemplateSubtitle')}\n gradient=\"from-indigo-500 to-purple-600\"\n showFormFooter\n onSubmit={(event) => {\n event.preventDefault()\n void handleSubmit()\n }}\n isLoading={isSubmitting}\n submitDisabled={!canSubmit}\n submitLabel={tCommon('create')}\n cancelLabel={tCommon('cancel')}\n maxWidth=\"lg\"\n >\n <div className=\"space-y-4\">\n {isLoading ? (\n <div className=\"shimmer h-32 w-full rounded-xl\" />\n ) : templates.length === 0 ? (\n <p className=\"text-sm text-gray-500 dark:text-gray-400\">\n {tWorkflow('noTemplatesAvailable')}\n </p>\n ) : (\n <>\n <label className=\"block\">\n <span className=\"mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300\">\n {tWorkflow('template')}\n </span>\n <select\n className=\"w-full rounded-lg border border-white/20 bg-white/70 px-3 py-2 text-sm text-gray-900 shadow-sm backdrop-blur dark:bg-gray-800/70 dark:text-gray-100\"\n value={templateId}\n onChange={(event) => setTemplateId(event.target.value)}\n >\n {templates.map((template) => (\n <option key={template.id} value={template.id}>\n {template.name}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <span className=\"mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300\">\n {tWorkflow('llmConnection')}\n </span>\n {connections.length === 0 ? (\n <p className=\"rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200\">\n {tWorkflow('noConnectionsHint')}\n </p>\n ) : (\n <select\n className=\"w-full rounded-lg border border-white/20 bg-white/70 px-3 py-2 text-sm text-gray-900 shadow-sm backdrop-blur dark:bg-gray-800/70 dark:text-gray-100\"\n value={connectionId}\n onChange={(event) => setConnectionId(event.target.value)}\n >\n {connections.map((connection) => (\n <option key={connection.id} value={connection.id}>\n {connection.name}\n {connection.providerSlug ? ` · ${connection.providerSlug}` : ''}\n </option>\n ))}\n </select>\n )}\n </label>\n\n <label className=\"block\">\n <span className=\"mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300\">\n {tWorkflow('workflowName')}\n <span className=\"ml-1 text-[10px] text-gray-400\">\n ({tCommon('optional')})\n </span>\n </span>\n <input\n type=\"text\"\n value={name}\n placeholder={selectedTemplate?.name ?? ''}\n onChange={(event) => setName(event.target.value)}\n className=\"w-full rounded-lg border border-white/20 bg-white/70 px-3 py-2 text-sm text-gray-900 shadow-sm backdrop-blur dark:bg-gray-800/70 dark:text-gray-100\"\n />\n </label>\n\n {selectedTemplate && selectedTemplate.tags.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5\">\n {selectedTemplate.tags.map((tag) => (\n <span\n key={tag}\n className=\"rounded-full bg-indigo-500/10 px-2 py-0.5 text-[10px] font-medium text-indigo-600 dark:bg-indigo-500/20 dark:text-indigo-300\"\n >\n {tag}\n </span>\n ))}\n </div>\n ) : null}\n </>\n )}\n </div>\n </GlassModal>\n )\n}\n","import {\n ShoppingCartIcon,\n DocumentTextIcon,\n BanknotesIcon,\n CubeIcon,\n UsersIcon,\n ShieldCheckIcon,\n ChatBubbleLeftRightIcon,\n WrenchScrewdriverIcon,\n BuildingStorefrontIcon,\n TruckIcon,\n} from '@heroicons/react/24/outline'\nimport type { KoriDepartmentData } from './department-dashboard'\n\ninterface KoriPromptData {\n prompt: string\n agents: string[]\n}\n\nimport type { KoriDemoTranslator } from './messages'\n\nconst STATIC_DEPT_META: Record<string, Pick<KoriDepartmentData, 'icon' | 'color' | 'bg'> & { agents: string[] }> = {\n vendas: { icon: ShoppingCartIcon, color: 'text-amber-400', bg: 'bg-amber-500/10', agents: ['Beatriz', 'Lead Scorer', 'CPQ Engine', 'Pipeline'] },\n fiscal: { icon: DocumentTextIcon, color: 'text-orange-400', bg: 'bg-orange-500/10', agents: ['Carlos', 'SEFAZ Bot', 'SPED Gen', 'Tax Calc'] },\n financeiro: { icon: BanknotesIcon, color: 'text-indigo-400', bg: 'bg-indigo-500/10', agents: ['Ana', 'Conciliação', 'DRE Bot', 'Fluxo Caixa'] },\n estoque: { icon: CubeIcon, color: 'text-emerald-400', bg: 'bg-emerald-500/10', agents: ['Paulo', 'ABC Analysis', 'Reorder Bot', 'Warehouse'] },\n rh: { icon: UsersIcon, color: 'text-cyan-400', bg: 'bg-cyan-500/10', agents: ['Laura', 'eSocial Bot', 'Payroll', 'Recruiter'] },\n compliance: { icon: ShieldCheckIcon, color: 'text-rose-400', bg: 'bg-rose-500/10', agents: ['Roberta', 'Privacy Bot', 'Audit Trail', 'RIPD Gen'] },\n atendimento: { icon: ChatBubbleLeftRightIcon, color: 'text-teal-400', bg: 'bg-teal-500/10', agents: ['Camila', 'SLA Monitor', 'Knowledge', 'CSAT'] },\n manufacturing: { icon: WrenchScrewdriverIcon, color: 'text-violet-400', bg: 'bg-violet-500/10', agents: ['MRP Planner', 'Quality Bot', 'Maintenance', 'BOM Engine'] },\n ecommerce: { icon: BuildingStorefrontIcon, color: 'text-pink-400', bg: 'bg-pink-500/10', agents: ['Storefront', 'Checkout Bot', 'Marketplace', 'Fulfillment'] },\n logistics: { icon: TruckIcon, color: 'text-sky-400', bg: 'bg-sky-500/10', agents: ['Route AI', 'Fleet Bot', 'Field Service', 'Tracking'] },\n}\n\nexport const KORI_DEPARTMENT_IDS = [\n 'vendas', 'fiscal', 'financeiro', 'estoque', 'rh',\n 'compliance', 'atendimento', 'manufacturing', 'ecommerce', 'logistics',\n] as const\n\n/** Build the localized array of departments from a kori-demo translator. */\nexport function getKoriDepartments(t: KoriDemoTranslator): Array<KoriDepartmentData & KoriPromptData & { workflowSteps?: string[] }> {\n return KORI_DEPARTMENT_IDS.map((id) => {\n const meta = STATIC_DEPT_META[id]!\n const metrics = (t.raw(`departments.${id}.metrics`) ?? []) as KoriDepartmentData['metrics']\n const items = (t.raw(`departments.${id}.items`) ?? []) as KoriDepartmentData['recentItems']\n const workflowSteps = (t.raw(`departments.${id}.workflowSteps`) ?? []) as string[]\n return {\n id,\n title: t(`departments.${id}.title`),\n icon: meta.icon,\n color: meta.color,\n bg: meta.bg,\n description: t(`departments.${id}.description`),\n prompt: t(`departments.${id}.prompt`),\n agents: meta.agents,\n metrics,\n agent: {\n name: t(`departments.${id}.agentName`),\n task: t(`departments.${id}.agentTask`),\n },\n recentItems: items,\n workflowSteps,\n }\n })\n}\n","import {\n ArrowTrendingUpIcon,\n CheckCircleIcon,\n ClockIcon,\n SparklesIcon,\n} from '@heroicons/react/24/outline'\n\nexport interface KoriDashboardMetric {\n label: string\n value: string\n change: string\n up: boolean\n}\n\nexport interface KoriDashboardItem {\n name: string\n value: string\n status: string\n}\n\nexport interface KoriDashboardAgent {\n name: string\n task: string\n}\n\nexport interface KoriDepartmentData {\n id: string\n title: string\n icon: React.ComponentType<React.SVGProps<SVGSVGElement>>\n color: string\n bg: string\n description: string\n metrics: KoriDashboardMetric[]\n agent: KoriDashboardAgent\n recentItems: KoriDashboardItem[]\n}\n\nexport interface KoriDashboardOptions {\n /** All agents that participated, in order. Avatars come from the optional avatars map. */\n agents?: string[]\n agentAvatars?: Record<string, string>\n /** Translator for dashboard chrome strings (live, team, lead, etc.). */\n tDashboard?: (key: string) => string\n}\n\nconst STATUS_COLORS: Record<string, string> = {\n Aprovado: 'text-emerald-400',\n Validada: 'text-emerald-400',\n Autorizada: 'text-emerald-400',\n Concluída: 'text-emerald-400',\n Concluído: 'text-emerald-400',\n Normal: 'text-emerald-400',\n Gerado: 'text-emerald-400',\n Resolvido: 'text-emerald-400',\n Recuperado: 'text-emerald-400',\n Sincronizado: 'text-emerald-400',\n Calculado: 'text-amber-400',\n Pendente: 'text-amber-400',\n 'Em análise': 'text-amber-400',\n Reposição: 'text-amber-400',\n Processando: 'text-amber-400',\n Enviado: 'text-emerald-400',\n Transmitida: 'text-emerald-400',\n 'Em trânsito': 'text-amber-400',\n 'Em rota': 'text-amber-400',\n 'Em produção': 'text-amber-400',\n 'Em andamento': 'text-amber-400',\n Recrutando: 'text-amber-400',\n Negociação: 'text-amber-400',\n Anonimizado: 'text-emerald-400',\n Notificado: 'text-amber-400',\n Carregando: 'text-amber-400',\n Agendado: 'text-violet-400',\n Programada: 'text-violet-400',\n Novo: 'text-violet-400',\n Vencido: 'text-rose-400',\n Rejeitada: 'text-rose-400',\n Crítico: 'text-rose-400',\n Alerta: 'text-rose-400',\n Projetado: 'text-violet-400',\n Cobrança: 'text-rose-400',\n Processada: 'text-emerald-400',\n Publicado: 'text-emerald-400',\n Ativado: 'text-emerald-400',\n}\n\nconst DEFAULT_DASHBOARD_LABELS: Record<string, string> = {\n live: 'Ao vivo',\n team: 'Time IA',\n agentsLabel: 'agentes',\n completed: 'concluído',\n lead: 'Líder',\n supporting: 'Co-piloto',\n supportingDesc: 'agentes auxiliares',\n time: 'Tempo',\n cost: 'Custo',\n agentsCount: 'Agentes',\n embed: 'Embed',\n pdf: 'PDF',\n nextUpdate: 'Próxima: amanhã 6:00',\n dashboardSuffix: 'Dashboard',\n}\n\nexport function KoriDepartmentDashboard({\n dept,\n agents,\n agentAvatars,\n tDashboard,\n}: { dept: KoriDepartmentData } & KoriDashboardOptions) {\n const team = agents ?? []\n const td = (key: string) => tDashboard?.(key) ?? DEFAULT_DASHBOARD_LABELS[key] ?? key\n return (\n <div className=\"flex h-full flex-col px-5 pt-4 pb-5 gap-3\">\n {/* Top row: title + live indicator */}\n <div className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-sm font-semibold text-gray-900 dark:text-white\">\n {dept.title} — {td('dashboardSuffix')}\n </h3>\n <p className=\"text-[11px] text-gray-500 dark:text-gray-400\">{dept.description}</p>\n </div>\n <span className=\"flex items-center gap-1.5 rounded-full bg-emerald-500/10 border border-emerald-500/20 px-2.5 py-1 text-[10px] font-semibold text-emerald-500 dark:text-emerald-400\">\n <span className=\"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse\" />\n {td('live')}\n </span>\n </div>\n\n {/* Metrics — glass pills */}\n <div className=\"grid grid-cols-2 gap-2 sm:grid-cols-4\">\n {dept.metrics.map((m) => (\n <div key={m.label} className=\"liquid-surface rounded-xl px-4 py-3\">\n <p className=\"text-[9px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400\">{m.label}</p>\n <div className=\"mt-1 flex items-baseline gap-2\">\n <span className=\"text-xl font-bold text-gray-900 dark:text-white\">{m.value}</span>\n <span className={`text-[11px] font-semibold ${m.up ? 'text-emerald-500 dark:text-emerald-400' : 'text-rose-500 dark:text-rose-400'}`}>\n {m.change}\n </span>\n </div>\n </div>\n ))}\n </div>\n\n {/* Agent + Activity */}\n <div className=\"grid flex-1 grid-cols-1 gap-3 lg:grid-cols-5 min-h-0\">\n {/* AI Team panel */}\n <div className=\"lg:col-span-2 flex flex-col gap-3 min-h-0\">\n <div className=\"flex items-center justify-between gap-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400\">\n <span className=\"flex items-center gap-2\">\n <SparklesIcon className=\"h-3.5 w-3.5 text-amber-500\" />\n {td('team')} · {team.length || 4} {td('agentsLabel')}\n </span>\n <span className=\"rounded-full bg-emerald-500/10 px-2 py-0.5 text-[9px] font-bold text-emerald-600 dark:text-emerald-400\">\n {td('completed')}\n </span>\n </div>\n\n {/* Lead persona */}\n <div className=\"liquid-surface rounded-2xl p-4\">\n <div className=\"flex items-center gap-3\">\n {team[0] && agentAvatars?.[team[0]!] ? (\n <img\n src={agentAvatars[team[0]!]}\n alt={team[0]!}\n className=\"h-11 w-11 rounded-2xl bg-white/40 dark:bg-white/[0.06] ring-2 ring-amber-500/40\"\n />\n ) : (\n <div className=\"flex h-11 w-11 items-center justify-center rounded-2xl bg-gradient-to-br from-amber-500 to-orange-500 shadow-lg shadow-amber-500/30\">\n <SparklesIcon className=\"h-5 w-5 text-white\" />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate text-sm font-semibold text-gray-900 dark:text-white\">{dept.agent.name}</p>\n <p className=\"flex items-center gap-1 text-[10px] text-amber-600 dark:text-amber-400\">\n <ClockIcon className=\"h-3 w-3\" />\n {td('lead')}\n </p>\n </div>\n </div>\n <div className=\"mt-3 rounded-lg border border-white/10 bg-white/50 dark:bg-white/[0.02] p-3\">\n <p className=\"text-xs leading-relaxed text-gray-700 dark:text-gray-300\">{dept.agent.task}</p>\n </div>\n <div className=\"mt-3 flex items-center gap-2\">\n <div className=\"h-1.5 flex-1 overflow-hidden rounded-full bg-gray-200/50 dark:bg-white/5\">\n <div className=\"h-full w-3/4 rounded-full bg-gradient-to-r from-amber-500 to-orange-500 animate-pulse\" />\n </div>\n <span className=\"text-[10px] text-gray-500\">75%</span>\n </div>\n </div>\n\n {/* Supporting agents — avatars row */}\n {team.length > 1 && (\n <div className=\"liquid-surface rounded-2xl p-3\">\n <p className=\"mb-2 text-[9px] font-bold uppercase tracking-wider text-gray-500 dark:text-gray-400\">\n {td('supporting')} · {team.length - 1} {td('supportingDesc')}\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {team.slice(1).map((agent) => {\n const avatar = agentAvatars?.[agent]\n return (\n <span\n key={agent}\n className=\"inline-flex items-center gap-1.5 rounded-full bg-white/40 dark:bg-white/[0.05] py-0.5 pl-0.5 pr-2.5 text-[10px] font-semibold text-gray-700 dark:text-gray-200\"\n >\n {avatar ? (\n <img src={avatar} alt=\"\" className=\"h-5 w-5 rounded-full bg-white/40 dark:bg-white/[0.06]\" />\n ) : (\n <span className=\"flex h-5 w-5 items-center justify-center rounded-full bg-gradient-to-br from-amber-500 to-orange-500\">\n <SparklesIcon className=\"h-2.5 w-2.5 text-white\" />\n </span>\n )}\n {agent}\n </span>\n )\n })}\n </div>\n </div>\n )}\n\n <div className=\"grid grid-cols-3 gap-2\">\n {[\n { value: '12s', label: td('time'), color: 'text-amber-500 dark:text-amber-400' },\n { value: 'R$ 0.23', label: td('cost'), color: 'text-emerald-500 dark:text-emerald-400' },\n { value: `${team.length || 4}`, label: td('agentsCount'), color: 'text-violet-500 dark:text-violet-400' },\n ].map((stat) => (\n <div key={stat.label} className=\"liquid-surface rounded-xl p-3 text-center\">\n <p className={`text-lg font-bold ${stat.color}`}>{stat.value}</p>\n <p className=\"text-[9px] text-gray-500 dark:text-gray-400\">{stat.label}</p>\n </div>\n ))}\n </div>\n </div>\n\n {/* Recent Activity */}\n <div className=\"lg:col-span-3 flex flex-col gap-3 min-h-0\">\n <div className=\"flex items-center gap-2 text-[10px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400\">\n <ArrowTrendingUpIcon className=\"h-3.5 w-3.5 text-emerald-500\" />\n Atividade Recente\n </div>\n <div className=\"space-y-2 overflow-y-auto\">\n {dept.recentItems.map((item, i) => (\n <div\n key={item.name}\n className=\"liquid-surface flex items-center justify-between rounded-xl px-4 py-3 opacity-0 animate-[fadeSlideIn_0.4s_ease_forwards]\"\n style={{ animationDelay: `${i * 150}ms` }}\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <CheckCircleIcon className={`h-4 w-4 shrink-0 ${STATUS_COLORS[item.status] ?? 'text-gray-400'}`} />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-gray-900 dark:text-white\">{item.name}</p>\n <p className=\"truncate text-[10px] text-gray-500 dark:text-gray-400\">{item.value}</p>\n </div>\n </div>\n <span className={`shrink-0 text-xs font-semibold ${STATUS_COLORS[item.status] ?? 'text-gray-400'}`}>\n {item.status}\n </span>\n </div>\n ))}\n </div>\n\n <div className=\"liquid-surface mt-auto flex items-center justify-between rounded-xl px-4 py-2.5\">\n <p className=\"text-[11px] font-mono text-gray-500 dark:text-gray-400\">kori.app/dashboard/{dept.id}</p>\n <div className=\"flex items-center gap-3 text-[10px] text-gray-500 dark:text-gray-400\">\n <span>{td('embed')}</span>\n <span>{td('pdf')}</span>\n <span>{td('nextUpdate')}</span>\n </div>\n </div>\n </div>\n </div>\n\n <style>{`\n @keyframes fadeSlideIn { from { opacity: 0; transform: translateY(8px) } to { opacity: 1; transform: translateY(0) } }\n `}</style>\n </div>\n )\n}\n","/**\n * Dicebear avatar URLs for the Kori AI agents shown in the landing demo.\n *\n * - Human-named personas use the `lorelei` (feminine) or `notionists` (masculine)\n * styles with small tweaks (glasses, hair variants) so each face is distinct.\n * - System/bot-named agents use the `bottts` style, seeded by the agent name.\n */\n\nfunction lorelei(seed: string, extras = ''): string {\n return `https://api.dicebear.com/9.x/lorelei/svg?seed=${encodeURIComponent(seed)}${extras ? `&${extras}` : ''}`\n}\n\nfunction notionists(seed: string, extras = ''): string {\n return `https://api.dicebear.com/9.x/notionists/svg?seed=${encodeURIComponent(seed)}${extras ? `&${extras}` : ''}`\n}\n\nfunction bottts(seed: string): string {\n return `https://api.dicebear.com/9.x/bottts/svg?seed=${encodeURIComponent(seed)}`\n}\n\n/** Human-named agents (personas). */\nexport const KORI_PERSON_AVATARS: Record<string, string> = {\n Beatriz: lorelei('Beatriz', 'hair=variant31&mouth=happy01&beardProbability=0'),\n Carlos: notionists('Carlos', 'glasses=variant03&glassesProbability=100&beardProbability=0'),\n Ana: lorelei('Ana', 'hair=variant35&mouth=happy01'),\n Paulo: notionists('Paulo', 'glasses=variant01&glassesProbability=100&gestureProbability=0'),\n Laura: lorelei('Laura', 'hair=variant22&mouth=happy01'),\n Roberta: lorelei('Roberta', 'hair=variant14&mouth=happy01&glasses=variant01&glassesProbability=100'),\n Camila: lorelei('Camila', 'hair=variant26&mouth=happy01'),\n}\n\n/** System/bot-named agents — uses bottts for a playful robot look. */\nexport const KORI_BOT_AVATARS: Record<string, string> = {\n 'Lead Scorer': bottts('LeadScorer'),\n 'CPQ Engine': bottts('CPQEngine'),\n Pipeline: bottts('PipelineBot'),\n 'SEFAZ Bot': bottts('SEFAZBot'),\n 'SPED Gen': bottts('SPEDGen'),\n 'Tax Calc': bottts('TaxCalc'),\n Conciliação: bottts('Conciliacao'),\n 'DRE Bot': bottts('DREBot'),\n 'Fluxo Caixa': bottts('FluxoCaixa'),\n 'ABC Analysis': bottts('ABCAnalysis'),\n 'Reorder Bot': bottts('ReorderBot'),\n Warehouse: bottts('Warehouse'),\n 'eSocial Bot': bottts('eSocialBot'),\n Payroll: bottts('Payroll'),\n Recruiter: bottts('Recruiter'),\n 'Privacy Bot': bottts('PrivacyBot'),\n 'Audit Trail': bottts('AuditTrail'),\n 'RIPD Gen': bottts('RIPDGen'),\n 'SLA Monitor': bottts('SLAMonitor'),\n Knowledge: bottts('Knowledge'),\n CSAT: bottts('CSAT'),\n 'MRP Planner': bottts('MRPPlanner'),\n 'Quality Bot': bottts('QualityBot'),\n Maintenance: bottts('Maintenance'),\n 'BOM Engine': bottts('BOMEngine'),\n Storefront: bottts('Storefront'),\n 'Checkout Bot': bottts('CheckoutBot'),\n Marketplace: bottts('Marketplace'),\n Fulfillment: bottts('Fulfillment'),\n 'Route AI': bottts('RouteAI'),\n 'Fleet Bot': bottts('FleetBot'),\n 'Field Service': bottts('FieldService'),\n Tracking: bottts('Tracking'),\n}\n\n/** All agents combined — lookup by display name. */\nexport const KORI_AGENT_AVATARS: Record<string, string> = {\n ...KORI_PERSON_AVATARS,\n ...KORI_BOT_AVATARS,\n}\n\n/**\n * Node-id → avatar mappings per department flow.\n * Keys are the node ids used inside the astrlabe workflow graphs in\n * `@datatechsolutions/ui/components/department-workflow-demo/workflows.ts`.\n */\nexport const KORI_FLOW_NODE_AVATARS: Record<string, Record<string, string>> = {\n // salesWorkflow\n vendas: {\n intake: bottts('CRMIntake'),\n score: KORI_AGENT_AVATARS['Lead Scorer']!,\n qualify: KORI_AGENT_AVATARS.Beatriz!,\n nurture: bottts('Nurture'),\n negotiate: KORI_AGENT_AVATARS.Beatriz!,\n proposal: KORI_AGENT_AVATARS['CPQ Engine']!,\n },\n // financialWorkflow (fiscal uses fiscal agents)\n fiscal: {\n audit: KORI_AGENT_AVATARS.Carlos!,\n icms: KORI_AGENT_AVATARS['Tax Calc']!,\n 'pis-cofins': KORI_AGENT_AVATARS['Tax Calc']!,\n iss: KORI_AGENT_AVATARS['Tax Calc']!,\n aggregate: KORI_AGENT_AVATARS['SPED Gen']!,\n },\n // financialWorkflow (financeiro persona)\n financeiro: {\n audit: KORI_AGENT_AVATARS.Ana!,\n icms: KORI_AGENT_AVATARS['DRE Bot']!,\n 'pis-cofins': KORI_AGENT_AVATARS['DRE Bot']!,\n iss: KORI_AGENT_AVATARS['Fluxo Caixa']!,\n aggregate: KORI_AGENT_AVATARS.Conciliação!,\n },\n // inventoryWorkflow\n estoque: {\n forecast: KORI_AGENT_AVATARS.Paulo!,\n supplier: KORI_AGENT_AVATARS['Reorder Bot']!,\n loop: KORI_AGENT_AVATARS['ABC Analysis']!,\n },\n // payrollWorkflow\n rh: {\n fgts: KORI_AGENT_AVATARS.Payroll!,\n inss: KORI_AGENT_AVATARS.Payroll!,\n irrf: KORI_AGENT_AVATARS.Payroll!,\n aggregate: KORI_AGENT_AVATARS.Laura!,\n esocial: KORI_AGENT_AVATARS['eSocial Bot']!,\n },\n // lgpdWorkflow\n compliance: {\n scan: KORI_AGENT_AVATARS.Roberta!,\n remediate: KORI_AGENT_AVATARS['Privacy Bot']!,\n },\n // supportWorkflow\n atendimento: {\n classify: KORI_AGENT_AVATARS['SLA Monitor']!,\n draft: KORI_AGENT_AVATARS.Camila!,\n review: KORI_AGENT_AVATARS.Camila!,\n },\n // manufacturingWorkflow\n manufacturing: {\n schedule: KORI_AGENT_AVATARS['MRP Planner']!,\n qc: KORI_AGENT_AVATARS['Quality Bot']!,\n },\n // marketingWorkflow (used for ecommerce tab)\n ecommerce: {\n strategist: KORI_AGENT_AVATARS.Storefront!,\n design: KORI_AGENT_AVATARS.Marketplace!,\n copy: KORI_AGENT_AVATARS['Checkout Bot']!,\n audience: KORI_AGENT_AVATARS.Fulfillment!,\n schedule: KORI_AGENT_AVATARS.Storefront!,\n },\n // logisticsWorkflow\n logistics: {\n optimize: KORI_AGENT_AVATARS['Route AI']!,\n dispatch: KORI_AGENT_AVATARS['Fleet Bot']!,\n },\n}\n","{\n \"badge\": \"Ask → Orchestrate → Deliver\",\n \"title\": \"Every department,\",\n \"titleAccent\": \"a dedicated AI agent\",\n \"subtitle\": \"You type a request. The Astrlabe canvas orchestrates agents and datasources. The ERP dashboard delivers the result. All in a single flow.\",\n \"conversation\": \"Conversation — {persona} · {department}\",\n \"composerHint\": \"Message Kori AI…\",\n \"composerEnter\": \"⏎ send\",\n \"assistantResponse\": \"Got it. I'll spin up {count} specialized agents and orchestrate the flow on Astrlabe.\",\n \"stageAsk\": \"Ask\",\n \"stageOrchestrate\": \"Orchestrate\",\n \"stageDeliver\": \"Deliver\",\n \"footerInput\": \"User sending a request to the assistant…\",\n \"footerWorkflow\": \"Astrlabe orchestrating agents and datasources…\",\n \"footerDashboard\": \"Done — ERP dashboard updated.\",\n \"workflowStep\": \"Step {current} of {total}\",\n \"departments\": {\n \"vendas\": {\n \"title\": \"Sales\",\n \"description\": \"Pipeline, CRM, quotes, targets — Beatrice runs the full commercial cycle\",\n \"prompt\": \"Qualify the XPTO Ltd lead and draft a proposal with tiered discount\",\n \"agentTask\": \"Qualifying 12 leads, drafting proposals with price book and tiered discount\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Beatriz — ELO 2,050\",\n \"metrics\": [\n {\n \"label\": \"Monthly Revenue\",\n \"value\": \"$195,K\",\n \"change\": \"+12%\",\n \"up\": true\n },\n {\n \"label\": \"Pipeline\",\n \"value\": \"$415,K\",\n \"change\": \"+28%\",\n \"up\": true\n },\n {\n \"label\": \"Win Rate\",\n \"value\": \"34%\",\n \"change\": \"+5pp\",\n \"up\": true\n },\n {\n \"label\": \"Avg Deal\",\n \"value\": \"$740\",\n \"change\": \"+8%\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"PO #4821 — Acme Industries\",\n \"value\": \"$5,640\",\n \"status\": \"Approved\"\n },\n {\n \"name\": \"Quote #892 — Northwind Retail\",\n \"value\": \"$4,180 (8% off)\",\n \"status\": \"Pending\"\n },\n {\n \"name\": \"Opportunity — Contoso Wholesale\",\n \"value\": \"$9,680 · 70% probability\",\n \"status\": \"Negotiating\"\n },\n {\n \"name\": \"Slack DM — Follow-up Delta\",\n \"value\": \"Message delivered\",\n \"status\": \"Sent\"\n }\n ],\n \"workflowSteps\": [\n \"Lead landed — XPTO Inc…\",\n \"CRM enriching the lead…\",\n \"Beatriz analyzing commercial fit…\",\n \"Routing by fit score (85/100 → qualify)…\",\n \"Marking as SQL and opening the opportunity…\",\n \"Drafting proposal from CPQ template…\",\n \"Beatriz steering the negotiation…\",\n \"Deal closed — booking the revenue…\"\n ]\n },\n \"fiscal\": {\n \"title\": \"Tax & Compliance\",\n \"description\": \"Invoices, VAT, sales tax, audit trails — Charlie owns regulatory compliance\",\n \"prompt\": \"Issue an invoice for cross-border sale and compute applicable taxes\",\n \"agentTask\": \"Computing sales tax for cross-state sale, generating invoice and dispatching to tax authority\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Charles — ELO 2,380\",\n \"metrics\": [\n {\n \"label\": \"Invoices issued\",\n \"value\": \"1,284\",\n \"change\": \"+180\",\n \"up\": true\n },\n {\n \"label\": \"State approval\",\n \"value\": \"99.8%\",\n \"change\": \"+0.1pp\",\n \"up\": true\n },\n {\n \"label\": \"Issuance time\",\n \"value\": \"2.3s\",\n \"change\": \"-0.8s\",\n \"up\": true\n },\n {\n \"label\": \"Sales tax collected\",\n \"value\": \"$124,K\",\n \"change\": \"+5%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Invoice #9821 — interstate (NY→NJ)\",\n \"value\": \"$2,050 · tax $165\",\n \"status\": \"Authorized\"\n },\n {\n \"name\": \"Invoice #9820 — Rejected\",\n \"value\": \"tax code mismatch\",\n \"status\": \"Rejected\"\n },\n {\n \"name\": \"Sales tax return — March 2026\",\n \"value\": \"2,847 entries\",\n \"status\": \"Generated\"\n },\n {\n \"name\": \"State e-file — Period 02\",\n \"value\": \"$10,400 in taxes\",\n \"status\": \"Transmitted\"\n }\n ],\n \"workflowSteps\": [\n \"Triggering quarterly close…\",\n \"Pulling Q4 transactions…\",\n \"Computing federal, state, and city tax in parallel…\",\n \"Charles consolidating the tax breakdown…\",\n \"Auditing compliance rules…\",\n \"Publishing the tax report…\"\n ]\n },\n \"financeiro\": {\n \"title\": \"Finance\",\n \"description\": \"Cash flow, P&L, bank reconciliation — Anna runs the finance cycle\",\n \"prompt\": \"Reconcile the bank statement and generate the P&L with trend analysis\",\n \"agentTask\": \"Auto-reconciling 847 bank statement entries, classifying by chart of accounts\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Anna — ELO 2,150\",\n \"metrics\": [\n {\n \"label\": \"Revenue\",\n \"value\": \"$552,K\",\n \"change\": \"+8%\",\n \"up\": true\n },\n {\n \"label\": \"EBITDA margin\",\n \"value\": \"18%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"A/R balance\",\n \"value\": \"$87,K\",\n \"change\": \"-15%\",\n \"up\": true\n },\n {\n \"label\": \"Past due\",\n \"value\": \"2.1%\",\n \"change\": \"-0.8pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Chase — March reconciliation\",\n \"value\": \"847 entries · 98% auto\",\n \"status\": \"Completed\"\n },\n {\n \"name\": \"Q1/2026 P&L\",\n \"value\": \"Revenue $552,K · Profit $99,K\",\n \"status\": \"Generated\"\n },\n {\n \"name\": \"Overdue invoice — Beta Co.\",\n \"value\": \"$1,930 · 15 days late\",\n \"status\": \"Collections\"\n },\n {\n \"name\": \"Cash flow — April forecast\",\n \"value\": \"Positive balance $27,600\",\n \"status\": \"Projected\"\n }\n ],\n \"workflowSteps\": [\n \"Triggering month-end close…\",\n \"Fetching Chase statement…\",\n \"Anna classifying entries against the chart of accounts…\",\n \"Consolidating financial statements…\",\n \"Auditing accounting rules…\",\n \"Publishing the finance dashboard…\"\n ]\n },\n \"estoque\": {\n \"title\": \"Inventory\",\n \"description\": \"ABC analysis, reorder points, cycle counts — Paul keeps inventory tight\",\n \"prompt\": \"Run cycle count for class A SKUs and auto-generate purchase orders\",\n \"agentTask\": \"Cycle count in progress: 180 class-A SKUs, auto-resolving variances\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Paul — ELO 1,850\",\n \"metrics\": [\n {\n \"label\": \"Active SKUs\",\n \"value\": \"1,847\",\n \"change\": \"+42\",\n \"up\": true\n },\n {\n \"label\": \"Inventory turn\",\n \"value\": \"8.2x\",\n \"change\": \"+1.1x\",\n \"up\": true\n },\n {\n \"label\": \"Stockouts\",\n \"value\": \"3\",\n \"change\": \"-8\",\n \"up\": true\n },\n {\n \"label\": \"Accuracy\",\n \"value\": \"99.2%\",\n \"change\": \"+0.4pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"PO #PO-291 — Alpha Supplier\",\n \"value\": \"450 units · $2,900\",\n \"status\": \"Sent\"\n },\n {\n \"name\": \"Transfer — DC NY → store PA\",\n \"value\": \"120 SKUs · 2,400 units\",\n \"status\": \"In transit\"\n },\n {\n \"name\": \"Stockout alert — Component X\",\n \"value\": \"45 units (min: 100)\",\n \"status\": \"Critical\"\n },\n {\n \"name\": \"Cycle count — Class A\",\n \"value\": \"180 SKUs · 99.2% accuracy\",\n \"status\": \"Completed\"\n }\n ],\n \"workflowSteps\": [\n \"Daily 6:00 AM cron triggered…\",\n \"Reading stock levels (1,847 SKUs)…\",\n \"Paul forecasting demand with seasonality…\",\n \"Filtering SKUs below reorder point…\",\n \"Iterating 12 flagged SKUs…\",\n \"Selecting supplier per SKU…\",\n \"Issuing purchase orders…\",\n \"Publishing reorder report…\"\n ]\n },\n \"rh\": {\n \"title\": \"People\",\n \"description\": \"Payroll, benefits, time off, recruiting — Laura automates HR ops\",\n \"prompt\": \"Process March payroll and generate compliance reports\",\n \"agentTask\": \"March payroll: computing 142 paystubs, taxes and contributions, generating compliance events\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Laura — ELO 1,920\",\n \"metrics\": [\n {\n \"label\": \"Headcount\",\n \"value\": \"142\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Turnover\",\n \"value\": \"3.2%\",\n \"change\": \"-1.5pp\",\n \"up\": true\n },\n {\n \"label\": \"Form 941\",\n \"value\": \"100%\",\n \"change\": \"on time\",\n \"up\": true\n },\n {\n \"label\": \"Monthly payroll\",\n \"value\": \"$205,K\",\n \"change\": \"+4%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"March payroll — 142 employees\",\n \"value\": \"$205,K gross · $62,K taxes\",\n \"status\": \"Processed\"\n },\n {\n \"name\": \"Form 941 — Compensation\",\n \"value\": \"142 events transmitted\",\n \"status\": \"Sent\"\n },\n {\n \"name\": \"PTO — David Miller\",\n \"value\": \"22 days · $1,800\",\n \"status\": \"Approved\"\n },\n {\n \"name\": \"Open req — Senior Engineer\",\n \"value\": \"47 candidates · 5 screened\",\n \"status\": \"Recruiting\"\n }\n ],\n \"workflowSteps\": [\n \"Month closed — triggering payroll…\",\n \"Pulling time records…\",\n \"Computing FICA, FITW, and 401k in parallel…\",\n \"Laura aggregating paystubs…\",\n \"Generating Form 941…\",\n \"Filing with the IRS…\",\n \"Publishing payroll dashboard…\"\n ]\n },\n \"compliance\": {\n \"title\": \"Privacy\",\n \"description\": \"GDPR/CCPA audits, consent, anonymization, impact reports\",\n \"prompt\": \"Audit personal data across all tables and generate the updated DPIA\",\n \"agentTask\": \"Full audit: scanning 14 tables, mapping PII, verifying lawful basis and retention\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Roberta — ELO 2,200\",\n \"metrics\": [\n {\n \"label\": \"Compliance\",\n \"value\": \"98%\",\n \"change\": \"+2pp\",\n \"up\": true\n },\n {\n \"label\": \"Consents on file\",\n \"value\": \"12.4K\",\n \"change\": \"+1.2K\",\n \"up\": true\n },\n {\n \"label\": \"Incidents\",\n \"value\": \"0\",\n \"change\": \"0\",\n \"up\": true\n },\n {\n \"label\": \"DSAR time\",\n \"value\": \"4h\",\n \"change\": \"-12h\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Quarterly audit — Q1/2026\",\n \"value\": \"14 tables · 847,000 records\",\n \"status\": \"Completed\"\n },\n {\n \"name\": \"DSAR — Erasure request #421\",\n \"value\": \"Customer Michael Brown\",\n \"status\": \"Anonymized\"\n },\n {\n \"name\": \"DPIA updated\",\n \"value\": \"32 processing activities mapped\",\n \"status\": \"Generated\"\n },\n {\n \"name\": \"Expired consents — Batch\",\n \"value\": \"45 records · re-opt-in needed\",\n \"status\": \"Pending\"\n }\n ],\n \"workflowSteps\": [\n \"Daily sweep started…\",\n \"Pulling CloudTrail audit logs…\",\n \"Roberta scanning PII access…\",\n \"Branching on findings…\",\n \"Remediation agent applying fixes…\",\n \"Notifying the DPO…\",\n \"Filing compliance report…\"\n ]\n },\n \"atendimento\": {\n \"title\": \"Support\",\n \"description\": \"Tickets, SLA, smart FAQ, CSAT — Camille takes care of your customers\",\n \"prompt\": \"Respond to ticket #847 about a delivery delay and check shipping status\",\n \"agentTask\": \"Ticket #847: checking carrier tracking, SLA and crafting a personalized reply\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Camille — ELO 1,780\",\n \"metrics\": [\n {\n \"label\": \"Open tickets\",\n \"value\": \"23\",\n \"change\": \"-12\",\n \"up\": true\n },\n {\n \"label\": \"SLA met\",\n \"value\": \"96%\",\n \"change\": \"+4pp\",\n \"up\": true\n },\n {\n \"label\": \"Response time\",\n \"value\": \"2min\",\n \"change\": \"-8min\",\n \"up\": true\n },\n {\n \"label\": \"CSAT\",\n \"value\": \"4.8/5\",\n \"change\": \"+0.3\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ticket #847 — Delivery delay\",\n \"value\": \"Sarah Johnson · SLA: 2h left\",\n \"status\": \"In progress\"\n },\n {\n \"name\": \"Ticket #845 — Product exchange\",\n \"value\": \"RMA authorization issued\",\n \"status\": \"Resolved\"\n },\n {\n \"name\": \"FAQ refreshed — 12 articles\",\n \"value\": \"Knowledge base\",\n \"status\": \"Published\"\n },\n {\n \"name\": \"Weekly CSAT\",\n \"value\": \"4.8/5 · 94% satisfaction\",\n \"status\": \"Calculated\"\n }\n ],\n \"workflowSteps\": [\n \"Ticket #847 received…\",\n \"Pulling history, order, and FAQ in parallel…\",\n \"Classifying intent and priority…\",\n \"Evaluating SLA and urgency…\",\n \"Camille drafting personalized reply…\",\n \"Optional human review…\",\n \"Sending the response to the customer…\"\n ]\n },\n \"manufacturing\": {\n \"title\": \"Manufacturing\",\n \"description\": \"Production orders, BOM, MRP, quality control, maintenance\",\n \"prompt\": \"Plan the weekly production from MRP and verify raw material availability\",\n \"agentTask\": \"Weekly MRP: 34 orders, checking 280 BOM components and capacity of 5 work centers\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"MRP Planner — ELO 1,900\",\n \"metrics\": [\n {\n \"label\": \"Active WOs\",\n \"value\": \"34\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"OEE\",\n \"value\": \"87%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Quality\",\n \"value\": \"99.4%\",\n \"change\": \"+0.2pp\",\n \"up\": true\n },\n {\n \"label\": \"Avg setup\",\n \"value\": \"12min\",\n \"change\": \"-4min\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"WO #1247 — Finished good A\",\n \"value\": \"500 units · BOM 12 parts\",\n \"status\": \"In production\"\n },\n {\n \"name\": \"Quality inspection — Lot #892\",\n \"value\": \"99.4% pass · 3 deviations\",\n \"status\": \"Approved\"\n },\n {\n \"name\": \"Preventive maintenance — CNC lathe\",\n \"value\": \"Scheduled for Friday\",\n \"status\": \"Scheduled\"\n },\n {\n \"name\": \"MRP — Material shortage\",\n \"value\": \"Component Y · 5-day lead time\",\n \"status\": \"Alert\"\n }\n ],\n \"workflowSteps\": [\n \"Weekly MRP cron triggered…\",\n \"Pulling S&OP demand…\",\n \"Exploding BOM (280 parts)…\",\n \"Checking inventory and capacity in parallel…\",\n \"Releasing 34 work orders…\",\n \"Running quality checkpoints…\",\n \"Publishing production dashboard…\"\n ]\n },\n \"ecommerce\": {\n \"title\": \"E-commerce\",\n \"description\": \"Catalog, checkout, customer portal, marketplace integration\",\n \"prompt\": \"Sync catalog with marketplaces and process 45 pending orders\",\n \"agentTask\": \"Syncing 1,200 SKUs across marketplaces, updating prices and stock in real time\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Storefront Agent — ELO 1,850\",\n \"metrics\": [\n {\n \"label\": \"Orders/day\",\n \"value\": \"127\",\n \"change\": \"+32\",\n \"up\": true\n },\n {\n \"label\": \"Monthly GMV\",\n \"value\": \"$97,K\",\n \"change\": \"+18%\",\n \"up\": true\n },\n {\n \"label\": \"Cart abandonment\",\n \"value\": \"24%\",\n \"change\": \"-6pp\",\n \"up\": true\n },\n {\n \"label\": \"NPS\",\n \"value\": \"72\",\n \"change\": \"+8\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Order #E-4821 — Amazon\",\n \"value\": \"$205 · 3 items\",\n \"status\": \"Sent\"\n },\n {\n \"name\": \"Catalog sync — Amazon\",\n \"value\": \"1,200 SKUs · 45 updated\",\n \"status\": \"Synced\"\n },\n {\n \"name\": \"Cart recovered — email #247\",\n \"value\": \"$78 · converted\",\n \"status\": \"Recovered\"\n },\n {\n \"name\": \"Customer portal — New account\",\n \"value\": \"Delta Corp.\",\n \"status\": \"Activated\"\n }\n ],\n \"workflowSteps\": [\n \"Campaign brief received…\",\n \"Strategist decomposing objectives…\",\n \"Design, copy, and audience working in parallel…\",\n \"Assembling the final package…\",\n \"Scheduling the send window…\",\n \"Dispatching via the email provider…\",\n \"Measuring reach and engagement…\"\n ]\n },\n \"logistics\": {\n \"title\": \"Logistics\",\n \"description\": \"Fleet, field service, work orders, routing, van stock\",\n \"prompt\": \"Optimize delivery routes for 28 orders in the metro area\",\n \"agentTask\": \"Routing: 28 deliveries, 4 vehicles, minimizing miles and respecting delivery windows\",\n \"agentLeading\": \"leading the team\",\n \"agentProcessing\": \"Processing\",\n \"agentName\": \"Route AI — ELO 1,900\",\n \"metrics\": [\n {\n \"label\": \"Deliveries/day\",\n \"value\": \"89\",\n \"change\": \"+15\",\n \"up\": true\n },\n {\n \"label\": \"On-time\",\n \"value\": \"94%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Miles driven\",\n \"value\": \"1.5K\",\n \"change\": \"-12%\",\n \"up\": true\n },\n {\n \"label\": \"Cost/delivery\",\n \"value\": \"$4.10\",\n \"change\": \"-$0.90\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Route #R-47 — Manhattan east\",\n \"value\": \"8 stops · 26 mi · 3h\",\n \"status\": \"En route\"\n },\n {\n \"name\": \"WO #1284 — Preventive maintenance\",\n \"value\": \"Vehicle plate NYC-4821\",\n \"status\": \"Scheduled\"\n },\n {\n \"name\": \"Van stock — Restock\",\n \"value\": \"45 items · tech John\",\n \"status\": \"Loading\"\n },\n {\n \"name\": \"Delivery delayed — Order #4815\",\n \"value\": \"Customer notified via SMS\",\n \"status\": \"Notified\"\n }\n ],\n \"workflowSteps\": [\n \"28 orders queued…\",\n \"Querying traffic, fleet, and time windows in parallel…\",\n \"Optimizer building the routes…\",\n \"Dispatching vehicles…\",\n \"Notifying customers via SMS…\",\n \"Publishing the tracking dashboard…\"\n ]\n }\n },\n \"dashboard\": {\n \"live\": \"Live\",\n \"team\": \"AI team\",\n \"agentsLabel\": \"agents\",\n \"completed\": \"done\",\n \"lead\": \"Lead\",\n \"supporting\": \"Co-pilots\",\n \"supportingDesc\": \"support agents\",\n \"time\": \"Time\",\n \"cost\": \"Cost\",\n \"agentsCount\": \"Agents\",\n \"embed\": \"Embed\",\n \"pdf\": \"PDF\",\n \"nextUpdate\": \"Next: tomorrow 6:00\",\n \"dashboardSuffix\": \"Dashboard\"\n }\n}","{\n \"badge\": \"Pergunte → Orquestre → Entregue\",\n \"title\": \"Cada departamento,\",\n \"titleAccent\": \"um agente especializado\",\n \"subtitle\": \"Você digita um pedido. O canvas Astrlabe orquestra os agentes e datasources. O dashboard do ERP entrega o resultado. Tudo em um único fluxo.\",\n \"conversation\": \"Conversa — {persona} · {department}\",\n \"composerHint\": \"Mensagem para Kori AI…\",\n \"composerEnter\": \"⏎ enviar\",\n \"assistantResponse\": \"Entendi. Vou ativar {count} agentes especializados e orquestrar o fluxo no Astrlabe.\",\n \"stageAsk\": \"Pergunte\",\n \"stageOrchestrate\": \"Orquestrar\",\n \"stageDeliver\": \"Entregar\",\n \"footerInput\": \"Usuário envia um pedido ao assistente…\",\n \"footerWorkflow\": \"Astrlabe orquestrando agentes e datasources…\",\n \"footerDashboard\": \"Pronto — dashboard do ERP atualizado.\",\n \"workflowStep\": \"Etapa {current} de {total}\",\n \"departments\": {\n \"vendas\": {\n \"title\": \"Vendas\",\n \"description\": \"Pipeline, CRM, orçamentos, metas — Beatriz cuida do ciclo comercial completo\",\n \"prompt\": \"Qualificar lead empresa XPTO e gerar proposta com desconto progressivo\",\n \"agentTask\": \"Qualificando 12 leads, gerando propostas com tabela de preços e desconto progressivo\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Beatriz — ELO 2.050\",\n \"metrics\": [\n {\n \"label\": \"Receita Mensal\",\n \"value\": \"R$ 847.K\",\n \"change\": \"+12%\",\n \"up\": true\n },\n {\n \"label\": \"Pipeline\",\n \"value\": \"R$ 1.800.K\",\n \"change\": \"+28%\",\n \"up\": true\n },\n {\n \"label\": \"Conversão\",\n \"value\": \"34%\",\n \"change\": \"+5pp\",\n \"up\": true\n },\n {\n \"label\": \"Ticket Médio\",\n \"value\": \"R$ 3.200\",\n \"change\": \"+8%\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Pedido #4821 — Indústria ABC\",\n \"value\": \"R$ 24.500\",\n \"status\": \"Aprovado\"\n },\n {\n \"name\": \"Proposta CPQ #892 — Varejo XYZ\",\n \"value\": \"R$ 18.200 (8% desconto)\",\n \"status\": \"Pendente\"\n },\n {\n \"name\": \"Oportunidade — Atacado JKL\",\n \"value\": \"R$ 42.100 · 70% chance\",\n \"status\": \"Negociação\"\n },\n {\n \"name\": \"WhatsApp — Follow-up cliente Delta\",\n \"value\": \"Mensagem enviada\",\n \"status\": \"Enviado\"\n }\n ],\n \"workflowSteps\": [\n \"Lead recebido — XPTO Ltda…\",\n \"CRM ingerindo e enriquecendo o lead…\",\n \"Beatriz analisando fit comercial…\",\n \"Roteando por score (85/100 → qualificar)…\",\n \"Qualificando como SQL e abrindo oportunidade…\",\n \"Gerando proposta a partir do template CPQ…\",\n \"Beatriz pilotando a negociação…\",\n \"Deal fechado — registrando receita…\"\n ]\n },\n \"fiscal\": {\n \"title\": \"Fiscal\",\n \"description\": \"NF-e, NFS-e, SPED, ICMS, PIS/COFINS — Carlos domina o tributário brasileiro\",\n \"prompt\": \"Emitir NF-e para venda interestadual SP→MG com ICMS-ST e calcular DIFAL\",\n \"agentTask\": \"Calculando ICMS-ST para operação interestadual SP→MG, gerando DANFE e enviando ao SEFAZ\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Carlos — ELO 2.380\",\n \"metrics\": [\n {\n \"label\": \"NF-e Emitidas\",\n \"value\": \"1.284\",\n \"change\": \"+180\",\n \"up\": true\n },\n {\n \"label\": \"Aprovação SEFAZ\",\n \"value\": \"99,8%\",\n \"change\": \"+0,1pp\",\n \"up\": true\n },\n {\n \"label\": \"Tempo Emissão\",\n \"value\": \"2,3s\",\n \"change\": \"-0,8s\",\n \"up\": true\n },\n {\n \"label\": \"ICMS Apurado\",\n \"value\": \"R$ 124.K\",\n \"change\": \"+5%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"NF-e #9821 — CFOP 6401 (ST)\",\n \"value\": \"R$ 8.900 · ICMS R$ 1.602\",\n \"status\": \"Autorizada\"\n },\n {\n \"name\": \"NF-e #9820 — Rejeição 539\",\n \"value\": \"NCM incompatível com CFOP\",\n \"status\": \"Rejeitada\"\n },\n {\n \"name\": \"SPED Fiscal — Março/2026\",\n \"value\": \"2.847 registros\",\n \"status\": \"Gerado\"\n },\n {\n \"name\": \"DCTF-Web — Comp. 02\",\n \"value\": \"R$ 45.200 em tributos\",\n \"status\": \"Transmitida\"\n }\n ],\n \"workflowSteps\": [\n \"Disparando fechamento trimestral…\",\n \"Buscando transações Q4…\",\n \"Calculando ICMS, PIS/COFINS e ISS em paralelo…\",\n \"Carlos consolidando apuração tributária…\",\n \"Auditando regras de compliance fiscal…\",\n \"Publicando relatório fiscal…\"\n ]\n },\n \"financeiro\": {\n \"title\": \"Financeiro\",\n \"description\": \"Fluxo de caixa, DRE, conciliação bancária — Ana gerencia o ciclo financeiro\",\n \"prompt\": \"Conciliar extrato Banco do Brasil e gerar DRE com análise de tendências\",\n \"agentTask\": \"Conciliação automática de 847 lançamentos do BB, classificando por plano de contas\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Ana — ELO 2.150\",\n \"metrics\": [\n {\n \"label\": \"Faturamento\",\n \"value\": \"R$ 2.400.K\",\n \"change\": \"+8%\",\n \"up\": true\n },\n {\n \"label\": \"Margem EBITDA\",\n \"value\": \"18%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Contas a Receber\",\n \"value\": \"R$ 380.K\",\n \"change\": \"-15%\",\n \"up\": true\n },\n {\n \"label\": \"Inadimplência\",\n \"value\": \"2,1%\",\n \"change\": \"-0,8pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"BB — Conciliação Março\",\n \"value\": \"847 lançamentos · 98% automático\",\n \"status\": \"Concluída\"\n },\n {\n \"name\": \"DRE Trimestral Q1/2026\",\n \"value\": \"Receita R$ 2.400.K · Lucro R$ 432.K\",\n \"status\": \"Gerado\"\n },\n {\n \"name\": \"Boleto vencido — Cliente Beta\",\n \"value\": \"R$ 8.400 · 15 dias\",\n \"status\": \"Cobrança\"\n },\n {\n \"name\": \"Fluxo de caixa — Projeção abril\",\n \"value\": \"Saldo positivo R$ 120.K\",\n \"status\": \"Projetado\"\n }\n ],\n \"workflowSteps\": [\n \"Disparando fechamento mensal…\",\n \"Buscando extrato BB…\",\n \"Ana classificando lançamentos por plano de contas…\",\n \"Consolidando demonstrativos…\",\n \"Auditando regras contábeis…\",\n \"Publicando dashboard financeiro…\"\n ]\n },\n \"estoque\": {\n \"title\": \"Estoque\",\n \"description\": \"Curva ABC, ponto de pedido, inventário rotativo — Paulo monitora tudo\",\n \"prompt\": \"Executar inventário rotativo classe A e gerar pedidos de compra automáticos\",\n \"agentTask\": \"Inventário rotativo: contando 180 SKUs classe A, ajustando divergências automáticas\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Paulo — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"SKUs Ativos\",\n \"value\": \"1.847\",\n \"change\": \"+42\",\n \"up\": true\n },\n {\n \"label\": \"Giro de Estoque\",\n \"value\": \"8,2x\",\n \"change\": \"+1,1x\",\n \"up\": true\n },\n {\n \"label\": \"Rupturas\",\n \"value\": \"3\",\n \"change\": \"-8\",\n \"up\": true\n },\n {\n \"label\": \"Acurácia\",\n \"value\": \"99,2%\",\n \"change\": \"+0,4pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"PC #PC-291 — Fornecedor Alpha\",\n \"value\": \"450 un. · R$ 12.600\",\n \"status\": \"Enviado\"\n },\n {\n \"name\": \"Transferência — CD SP → Filial RJ\",\n \"value\": \"120 SKUs · 2.400 un.\",\n \"status\": \"Em trânsito\"\n },\n {\n \"name\": \"Alerta ruptura — Componente X\",\n \"value\": \"45 un. (mín: 100)\",\n \"status\": \"Crítico\"\n },\n {\n \"name\": \"Inventário rotativo — Classe A\",\n \"value\": \"180 SKUs · 99,2% acurácia\",\n \"status\": \"Concluído\"\n }\n ],\n \"workflowSteps\": [\n \"Cron diário 06:00 disparado…\",\n \"Lendo níveis de estoque (1.847 SKUs)…\",\n \"Paulo prevendo demanda com sazonalidade…\",\n \"Filtrando SKUs abaixo do ponto de pedido…\",\n \"Iterando 12 SKUs sinalizados…\",\n \"Selecionando fornecedor por SKU…\",\n \"Criando ordens de compra…\",\n \"Publicando relatório de reposição…\"\n ]\n },\n \"rh\": {\n \"title\": \"RH\",\n \"description\": \"Folha, eSocial, férias, rescisões, recrutamento — Laura automatiza o DP\",\n \"prompt\": \"Processar folha de março com 13° proporcional e gerar eventos eSocial\",\n \"agentTask\": \"Folha março/2026: calculando 142 holerites, FGTS, INSS, IRRF e gerando S-1200 eSocial\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Laura — ELO 1.920\",\n \"metrics\": [\n {\n \"label\": \"Colaboradores\",\n \"value\": \"142\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Turnover\",\n \"value\": \"3,2%\",\n \"change\": \"-1,5pp\",\n \"up\": true\n },\n {\n \"label\": \"eSocial\",\n \"value\": \"100%\",\n \"change\": \"em dia\",\n \"up\": true\n },\n {\n \"label\": \"Folha Mensal\",\n \"value\": \"R$ 890.K\",\n \"change\": \"+4%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Folha março — 142 colaboradores\",\n \"value\": \"R$ 890.K bruto · R$ 267.K encargos\",\n \"status\": \"Processada\"\n },\n {\n \"name\": \"eSocial S-1200 — Remuneração\",\n \"value\": \"142 eventos transmitidos\",\n \"status\": \"Enviado\"\n },\n {\n \"name\": \"Férias — Carlos Souza\",\n \"value\": \"30 dias · R$ 7.800\",\n \"status\": \"Aprovado\"\n },\n {\n \"name\": \"Vaga aberta — Dev Senior\",\n \"value\": \"47 candidatos · 5 triados\",\n \"status\": \"Recrutando\"\n }\n ],\n \"workflowSteps\": [\n \"Mês fechado — disparando folha…\",\n \"Buscando registros de ponto…\",\n \"Calculando FGTS, INSS e IRRF em paralelo…\",\n \"Laura agregando holerites…\",\n \"Gerando evento eSocial S-1200…\",\n \"Transmitindo ao governo…\",\n \"Publicando dashboard da folha…\"\n ]\n },\n \"compliance\": {\n \"title\": \"LGPD\",\n \"description\": \"Auditoria LGPD, consentimentos, anonimização, relatório de impacto\",\n \"prompt\": \"Auditar dados pessoais em todas as tabelas e gerar RIPD atualizado\",\n \"agentTask\": \"Auditoria completa: varrendo 14 tabelas, mapeando PII, verificando bases legais e retenção\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Roberta — ELO 2.200\",\n \"metrics\": [\n {\n \"label\": \"Conformidade\",\n \"value\": \"98%\",\n \"change\": \"+2pp\",\n \"up\": true\n },\n {\n \"label\": \"Consentimentos\",\n \"value\": \"12,4K\",\n \"change\": \"+1,2K\",\n \"up\": true\n },\n {\n \"label\": \"Incidentes\",\n \"value\": \"0\",\n \"change\": \"0\",\n \"up\": true\n },\n {\n \"label\": \"Tempo DSAR\",\n \"value\": \"4h\",\n \"change\": \"-12h\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Auditoria trimestral — Q1/2026\",\n \"value\": \"14 tabelas · 847.000 registros\",\n \"status\": \"Concluída\"\n },\n {\n \"name\": \"DSAR — Solicitação exclusão #421\",\n \"value\": \"Cliente João Silva\",\n \"status\": \"Anonimizado\"\n },\n {\n \"name\": \"RIPD atualizado\",\n \"value\": \"32 tratamentos mapeados\",\n \"status\": \"Gerado\"\n },\n {\n \"name\": \"Consentimento expirado — Lote\",\n \"value\": \"45 registros · revalidação\",\n \"status\": \"Pendente\"\n }\n ],\n \"workflowSteps\": [\n \"Sweep diário iniciado…\",\n \"Buscando logs de auditoria CloudTrail…\",\n \"Roberta escaneando acesso a PII…\",\n \"Bifurcando por achados…\",\n \"Agente de remediação aplicando fixes…\",\n \"Notificando o encarregado (DPO)…\",\n \"Arquivando relatório de compliance…\"\n ]\n },\n \"atendimento\": {\n \"title\": \"Suporte\",\n \"description\": \"Tickets, SLA, FAQ inteligente, satisfação — Camila atende seus clientes\",\n \"prompt\": \"Responder ticket #847 sobre atraso na entrega e verificar status logístico\",\n \"agentTask\": \"Ticket #847: consultando rastreio, verificando SLA e preparando resposta personalizada\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Camila — ELO 1.780\",\n \"metrics\": [\n {\n \"label\": \"Tickets Abertos\",\n \"value\": \"23\",\n \"change\": \"-12\",\n \"up\": true\n },\n {\n \"label\": \"SLA Cumprido\",\n \"value\": \"96%\",\n \"change\": \"+4pp\",\n \"up\": true\n },\n {\n \"label\": \"Tempo Resposta\",\n \"value\": \"2min\",\n \"change\": \"-8min\",\n \"up\": true\n },\n {\n \"label\": \"CSAT\",\n \"value\": \"4,8/5\",\n \"change\": \"+0,3\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ticket #847 — Atraso entrega\",\n \"value\": \"Cliente Maria · SLA: 2h restantes\",\n \"status\": \"Em andamento\"\n },\n {\n \"name\": \"Ticket #845 — Troca produto\",\n \"value\": \"Autorização RMA gerada\",\n \"status\": \"Resolvido\"\n },\n {\n \"name\": \"FAQ atualizada — 12 artigos\",\n \"value\": \"Base de conhecimento\",\n \"status\": \"Publicado\"\n },\n {\n \"name\": \"CSAT semanal\",\n \"value\": \"4,8/5 · 94% satisfação\",\n \"status\": \"Calculado\"\n }\n ],\n \"workflowSteps\": [\n \"Ticket #847 recebido…\",\n \"Buscando histórico, pedido e FAQ em paralelo…\",\n \"Classificando intenção e prioridade…\",\n \"Avaliando SLA e urgência…\",\n \"Camila rascunhando resposta personalizada…\",\n \"Revisão humana opcional…\",\n \"Enviando resposta ao cliente…\"\n ]\n },\n \"manufacturing\": {\n \"title\": \"Produção\",\n \"description\": \"Ordens de produção, BOM, MRP, controle de qualidade, manutenção\",\n \"prompt\": \"Planejar produção semanal com base no MRP e verificar disponibilidade de matéria-prima\",\n \"agentTask\": \"MRP semanal: 34 ordens, verificando 280 componentes BOM e capacidade de 5 centros de trabalho\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"MRP Planner — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"OPs Ativas\",\n \"value\": \"34\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Eficiência OEE\",\n \"value\": \"87%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Qualidade\",\n \"value\": \"99,4%\",\n \"change\": \"+0,2pp\",\n \"up\": true\n },\n {\n \"label\": \"Setup Médio\",\n \"value\": \"12min\",\n \"change\": \"-4min\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"OP #1247 — Produto Final A\",\n \"value\": \"500 un. · BOM 12 componentes\",\n \"status\": \"Em produção\"\n },\n {\n \"name\": \"Inspeção qualidade — Lote #892\",\n \"value\": \"99,4% aprovação · 3 desvios\",\n \"status\": \"Aprovado\"\n },\n {\n \"name\": \"Manutenção preventiva — Torno CNC\",\n \"value\": \"Programada para sexta\",\n \"status\": \"Agendado\"\n },\n {\n \"name\": \"MRP — Falta matéria-prima\",\n \"value\": \"Componente Y · lead time 5 dias\",\n \"status\": \"Alerta\"\n }\n ],\n \"workflowSteps\": [\n \"Cron semanal MRP disparado…\",\n \"Puxando demanda S&OP…\",\n \"Explodindo BOM (280 componentes)…\",\n \"Checando estoque e capacidade em paralelo…\",\n \"Liberando 34 ordens de produção…\",\n \"Rodando checkpoints de qualidade…\",\n \"Publicando painel de produção…\"\n ]\n },\n \"ecommerce\": {\n \"title\": \"E-commerce\",\n \"description\": \"Catálogo, checkout, portal do cliente, integração marketplace\",\n \"prompt\": \"Sincronizar catálogo com marketplaces e processar 45 pedidos pendentes\",\n \"agentTask\": \"Sincronizando 1.200 SKUs com marketplaces, atualizando preços e estoque em tempo real\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Storefront Agent — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"Pedidos/dia\",\n \"value\": \"127\",\n \"change\": \"+32\",\n \"up\": true\n },\n {\n \"label\": \"GMV Mensal\",\n \"value\": \"R$ 420.K\",\n \"change\": \"+18%\",\n \"up\": true\n },\n {\n \"label\": \"Carrinho Abandonado\",\n \"value\": \"24%\",\n \"change\": \"-6pp\",\n \"up\": true\n },\n {\n \"label\": \"NPS\",\n \"value\": \"72\",\n \"change\": \"+8\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Pedido #E-4821 — Mercado Livre\",\n \"value\": \"R$ 890 · 3 itens\",\n \"status\": \"Enviado\"\n },\n {\n \"name\": \"Sync catálogo — Mercado Livre\",\n \"value\": \"1.200 SKUs · 45 atualizados\",\n \"status\": \"Sincronizado\"\n },\n {\n \"name\": \"Carrinho recuperado — email #247\",\n \"value\": \"R$ 340 · conversão\",\n \"status\": \"Recuperado\"\n },\n {\n \"name\": \"Portal cliente — Nova conta\",\n \"value\": \"Empresa Delta LTDA\",\n \"status\": \"Ativado\"\n }\n ],\n \"workflowSteps\": [\n \"Brief de campanha recebido…\",\n \"Estrategista decompondo objetivos…\",\n \"Design, copy e audience trabalhando em paralelo…\",\n \"Montando pacote final…\",\n \"Agendando janela de envio…\",\n \"Disparando via provedor de email…\",\n \"Medindo alcance e engajamento…\"\n ]\n },\n \"logistics\": {\n \"title\": \"Logística\",\n \"description\": \"Frota, field service, ordens de serviço, roteirização, van stock\",\n \"prompt\": \"Otimizar rotas de entrega para 28 pedidos na região metropolitana de SP\",\n \"agentTask\": \"Roteirização: 28 entregas, 4 veículos, minimizando km e respeitando janelas de entrega\",\n \"agentLeading\": \"liderando o time\",\n \"agentProcessing\": \"Processando\",\n \"agentName\": \"Route AI — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"Entregas/dia\",\n \"value\": \"89\",\n \"change\": \"+15\",\n \"up\": true\n },\n {\n \"label\": \"On-time\",\n \"value\": \"94%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Km Rodados\",\n \"value\": \"2,4K\",\n \"change\": \"-12%\",\n \"up\": true\n },\n {\n \"label\": \"Custo/Entrega\",\n \"value\": \"R$ 18\",\n \"change\": \"-R$ 4\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Rota #R-47 — Zona Leste SP\",\n \"value\": \"8 entregas · 42km · 3h\",\n \"status\": \"Em rota\"\n },\n {\n \"name\": \"OS #1284 — Manutenção preventiva\",\n \"value\": \"Veículo placa ABC-1234\",\n \"status\": \"Agendado\"\n },\n {\n \"name\": \"Van stock — Reabastecimento\",\n \"value\": \"45 itens · Técnico João\",\n \"status\": \"Carregando\"\n },\n {\n \"name\": \"Entrega atrasada — Pedido #4815\",\n \"value\": \"Cliente avisado via WhatsApp\",\n \"status\": \"Notificado\"\n }\n ],\n \"workflowSteps\": [\n \"28 pedidos entraram na fila…\",\n \"Consultando trânsito, frota e janelas em paralelo…\",\n \"Otimizador montando rotas…\",\n \"Despachando veículos…\",\n \"Notificando clientes via WhatsApp…\",\n \"Publicando painel de tracking…\"\n ]\n }\n },\n \"dashboard\": {\n \"live\": \"Ao vivo\",\n \"team\": \"Time IA\",\n \"agentsLabel\": \"agentes\",\n \"completed\": \"concluído\",\n \"lead\": \"Líder\",\n \"supporting\": \"Co-piloto\",\n \"supportingDesc\": \"agentes auxiliares\",\n \"time\": \"Tempo\",\n \"cost\": \"Custo\",\n \"agentsCount\": \"Agentes\",\n \"embed\": \"Embed\",\n \"pdf\": \"PDF\",\n \"nextUpdate\": \"Próxima: amanhã 6:00\",\n \"dashboardSuffix\": \"Dashboard\"\n }\n}","{\n \"badge\": \"Fragen → Orchestrieren → Liefern\",\n \"title\": \"Jede Abteilung,\",\n \"titleAccent\": \"ein spezialisierter KI-Agent\",\n \"subtitle\": \"Sie geben eine Anfrage ein. Das Astrlabe-Canvas orchestriert die Agenten und Datenquellen. Das ERP-Dashboard liefert das Ergebnis. Alles in einem Fluss.\",\n \"conversation\": \"Gespräch — {persona} · {department}\",\n \"composerHint\": \"Nachricht an Kori AI…\",\n \"composerEnter\": \"⏎ senden\",\n \"assistantResponse\": \"Verstanden. Ich aktiviere {count} spezialisierte Agenten und orchestriere den Flow auf Astrlabe.\",\n \"stageAsk\": \"Fragen\",\n \"stageOrchestrate\": \"Orchestrieren\",\n \"stageDeliver\": \"Liefern\",\n \"footerInput\": \"Benutzer sendet eine Anfrage an den Assistenten…\",\n \"footerWorkflow\": \"Astrlabe orchestriert Agenten und Datenquellen…\",\n \"footerDashboard\": \"Fertig — ERP-Dashboard aktualisiert.\",\n \"workflowStep\": \"Schritt {current} von {total}\",\n \"departments\": {\n \"vendas\": {\n \"title\": \"Vertrieb\",\n \"description\": \"Pipeline, CRM, Angebote, Ziele — Beatrice steuert den Vertriebszyklus\",\n \"prompt\": \"XPTO-Lead qualifizieren und Angebot mit Staffelrabatt erstellen\",\n \"agentTask\": \"12 Leads qualifizieren, Angebote mit Preisliste und Staffelrabatt erstellen\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Beatrice — ELO 2.050\",\n \"metrics\": [\n {\n \"label\": \"Monatsumsatz\",\n \"value\": \"175.K €\",\n \"change\": \"+12 %\",\n \"up\": true\n },\n {\n \"label\": \"Pipeline\",\n \"value\": \"380.K €\",\n \"change\": \"+28 %\",\n \"up\": true\n },\n {\n \"label\": \"Abschlussquote\",\n \"value\": \"34 %\",\n \"change\": \"+5 pp\",\n \"up\": true\n },\n {\n \"label\": \"Ø Auftrag\",\n \"value\": \"660 €\",\n \"change\": \"+8 %\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Bestellung #4821 — Acme Industrie GmbH\",\n \"value\": \"5.060 €\",\n \"status\": \"Genehmigt\"\n },\n {\n \"name\": \"Angebot CPQ #892 — Northwind Handel\",\n \"value\": \"3.760 € (-8 %)\",\n \"status\": \"Ausstehend\"\n },\n {\n \"name\": \"Chance — Contoso Großhandel\",\n \"value\": \"8.700 € · 70 % Wahrscheinlichkeit\",\n \"status\": \"Verhandlung\"\n },\n {\n \"name\": \"WhatsApp — Nachfass Delta\",\n \"value\": \"Nachricht zugestellt\",\n \"status\": \"Gesendet\"\n }\n ],\n \"workflowSteps\": [\n \"Lead eingetroffen — XPTO GmbH…\",\n \"CRM reichert den Lead an…\",\n \"Beatrice prüft den Commercial-Fit…\",\n \"Routing nach Score (85/100 → qualifizieren)…\",\n \"Qualifizierung als SQL, Opportunity geöffnet…\",\n \"Angebot aus CPQ-Vorlage erstellt…\",\n \"Beatrice führt die Verhandlung…\",\n \"Deal abgeschlossen — Umsatz verbucht…\"\n ]\n },\n \"fiscal\": {\n \"title\": \"Steuer\",\n \"description\": \"Rechnungen, USt, Steuerprüfungen — Karl beherrscht die Compliance\",\n \"prompt\": \"Rechnung für innergemeinschaftliche Lieferung ausstellen und USt berechnen\",\n \"agentTask\": \"USt berechnen, Rechnung erstellen und an die Finanzbehörde senden\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Karl — ELO 2.380\",\n \"metrics\": [\n {\n \"label\": \"Rechnungen erstellt\",\n \"value\": \"1.284\",\n \"change\": \"+180\",\n \"up\": true\n },\n {\n \"label\": \"Finanzamt-Freigabe\",\n \"value\": \"99,8 %\",\n \"change\": \"+0,1 pp\",\n \"up\": true\n },\n {\n \"label\": \"Erstellzeit\",\n \"value\": \"2,3 s\",\n \"change\": \"-0,8 s\",\n \"up\": true\n },\n {\n \"label\": \"USt vereinnahmt\",\n \"value\": \"124.K €\",\n \"change\": \"+5 %\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Rechnung #9821 — innergemeinschaftlich\",\n \"value\": \"1.850 € · USt 333 €\",\n \"status\": \"Autorisiert\"\n },\n {\n \"name\": \"Rechnung #9820 — Abgelehnt\",\n \"value\": \"Steuercode unstimmig\",\n \"status\": \"Abgelehnt\"\n },\n {\n \"name\": \"USt-Voranmeldung — März 2026\",\n \"value\": \"2.847 Buchungen\",\n \"status\": \"Erstellt\"\n },\n {\n \"name\": \"ELSTER — Zeitraum 02\",\n \"value\": \"9.380 € an Abgaben\",\n \"status\": \"Übermittelt\"\n }\n ],\n \"workflowSteps\": [\n \"Quartalsabschluss starten…\",\n \"Q4-Transaktionen abrufen…\",\n \"USt und Reverse-Charge parallel berechnen…\",\n \"Karl konsolidiert die Steueraufstellung…\",\n \"Compliance-Regeln prüfen…\",\n \"Steuerbericht veröffentlichen…\"\n ]\n },\n \"financeiro\": {\n \"title\": \"Finanzen\",\n \"description\": \"Cashflow, GuV, Bankabstimmung — Anna leitet den Finanzzyklus\",\n \"prompt\": \"Kontoauszug abstimmen und GuV mit Trendanalyse generieren\",\n \"agentTask\": \"847 Bankbuchungen automatisch abgestimmt, nach Kontenrahmen klassifiziert\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Anna — ELO 2.150\",\n \"metrics\": [\n {\n \"label\": \"Umsatz\",\n \"value\": \"495.K €\",\n \"change\": \"+8 %\",\n \"up\": true\n },\n {\n \"label\": \"EBITDA-Marge\",\n \"value\": \"18 %\",\n \"change\": \"+3 pp\",\n \"up\": true\n },\n {\n \"label\": \"Forderungen\",\n \"value\": \"78.K €\",\n \"change\": \"-15 %\",\n \"up\": true\n },\n {\n \"label\": \"Überfällig\",\n \"value\": \"2,1 %\",\n \"change\": \"-0,8 pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Sparkasse — Abstimmung März\",\n \"value\": \"847 Buchungen · 98 % auto\",\n \"status\": \"Abgeschlossen\"\n },\n {\n \"name\": \"GuV Q1/2026\",\n \"value\": \"Umsatz 495.K € · Gewinn 89.K €\",\n \"status\": \"Erstellt\"\n },\n {\n \"name\": \"Überfällige Rechnung — Beta GmbH\",\n \"value\": \"1.730 € · 15 Tage\",\n \"status\": \"Inkasso\"\n },\n {\n \"name\": \"Cashflow — April-Prognose\",\n \"value\": \"Positiver Saldo 24.800 €\",\n \"status\": \"Prognostiziert\"\n }\n ],\n \"workflowSteps\": [\n \"Monatsabschluss starten…\",\n \"Kontoauszug Sparkasse abrufen…\",\n \"Anna ordnet Buchungen dem Kontenrahmen zu…\",\n \"Abschluss konsolidieren…\",\n \"Buchhaltungsregeln prüfen…\",\n \"Finanz-Dashboard veröffentlichen…\"\n ]\n },\n \"estoque\": {\n \"title\": \"Lager\",\n \"description\": \"ABC-Analyse, Bestellpunkt, rollierende Inventur — Paul überwacht alles\",\n \"prompt\": \"Rollierende Inventur Klasse A ausführen und Bestellungen automatisch erstellen\",\n \"agentTask\": \"Rollierende Inventur: 180 A-SKUs gezählt, Abweichungen automatisch ausgeglichen\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Paul — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"Aktive SKUs\",\n \"value\": \"1.847\",\n \"change\": \"+42\",\n \"up\": true\n },\n {\n \"label\": \"Lagerumschlag\",\n \"value\": \"8,2x\",\n \"change\": \"+1,1x\",\n \"up\": true\n },\n {\n \"label\": \"Fehlbestände\",\n \"value\": \"3\",\n \"change\": \"-8\",\n \"up\": true\n },\n {\n \"label\": \"Genauigkeit\",\n \"value\": \"99,2 %\",\n \"change\": \"+0,4 pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Bestellung #BS-291 — Lieferant Alpha\",\n \"value\": \"450 Einh. · 2.900 €\",\n \"status\": \"Gesendet\"\n },\n {\n \"name\": \"Transfer — Lager Bayern → Filiale Hessen\",\n \"value\": \"120 SKUs · 2.400 Einh.\",\n \"status\": \"Unterwegs\"\n },\n {\n \"name\": \"Bestandswarnung — Komponente X\",\n \"value\": \"45 Einh. (Min: 100)\",\n \"status\": \"Kritisch\"\n },\n {\n \"name\": \"Rollierende Inventur — Klasse A\",\n \"value\": \"180 SKUs · 99,2 % Genauigkeit\",\n \"status\": \"Abgeschlossen\"\n }\n ],\n \"workflowSteps\": [\n \"Täglicher Cron 6:00 Uhr gestartet…\",\n \"Lagerbestände lesen (1.847 SKUs)…\",\n \"Paul prognostiziert saisonale Nachfrage…\",\n \"SKUs unter Bestellpunkt filtern…\",\n \"12 markierte SKUs iterieren…\",\n \"Lieferant pro SKU auswählen…\",\n \"Bestellungen aufgeben…\",\n \"Nachbestellbericht veröffentlichen…\"\n ]\n },\n \"rh\": {\n \"title\": \"Personal\",\n \"description\": \"Lohnabrechnung, Urlaub, Verträge, Recruiting — Laura automatisiert HR\",\n \"prompt\": \"Märzabrechnung verarbeiten und Compliance-Meldungen erstellen\",\n \"agentTask\": \"Märzlohn: 142 Lohnabrechnungen, Lohnsteuer und Sozialabgaben, Meldungen\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Laura — ELO 1.920\",\n \"metrics\": [\n {\n \"label\": \"Belegschaft\",\n \"value\": \"142\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Fluktuation\",\n \"value\": \"3,2 %\",\n \"change\": \"-1,5 pp\",\n \"up\": true\n },\n {\n \"label\": \"ELSTER\",\n \"value\": \"100 %\",\n \"change\": \"aktuell\",\n \"up\": true\n },\n {\n \"label\": \"Monatslohn\",\n \"value\": \"185.K €\",\n \"change\": \"+4 %\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Lohnabrechnung März — 142 Mitarbeitende\",\n \"value\": \"185.K € brutto · 56.K € Abgaben\",\n \"status\": \"Verarbeitet\"\n },\n {\n \"name\": \"ELSTER Lohnsteuer — Vergütung\",\n \"value\": \"142 Ereignisse übermittelt\",\n \"status\": \"Gesendet\"\n },\n {\n \"name\": \"Urlaub — Stefan Wagner\",\n \"value\": \"30 Tage · 1.620 €\",\n \"status\": \"Genehmigt\"\n },\n {\n \"name\": \"Offene Stelle — Senior Dev\",\n \"value\": \"47 Bewerber · 5 vorgeprüft\",\n \"status\": \"Rekrutierung\"\n }\n ],\n \"workflowSteps\": [\n \"Monat geschlossen — Lohnlauf gestartet…\",\n \"Zeiterfassungen abrufen…\",\n \"Lohnsteuer, KV-Beiträge und Renten parallel berechnen…\",\n \"Laura aggregiert die Lohnabrechnungen…\",\n \"ELSTER-Anmeldung erstellen…\",\n \"An das Finanzamt übermitteln…\",\n \"Lohn-Dashboard veröffentlichen…\"\n ]\n },\n \"compliance\": {\n \"title\": \"DSGVO\",\n \"description\": \"DSGVO-Audit, Einwilligungen, Anonymisierung, Folgenabschätzungen\",\n \"prompt\": \"Personenbezogene Daten in allen Tabellen prüfen und DSFA aktualisieren\",\n \"agentTask\": \"Komplett-Audit: 14 Tabellen gescannt, PII kartiert, Rechtsgrundlagen geprüft\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Roberta — ELO 2.200\",\n \"metrics\": [\n {\n \"label\": \"Compliance\",\n \"value\": \"98 %\",\n \"change\": \"+2 pp\",\n \"up\": true\n },\n {\n \"label\": \"Einwilligungen\",\n \"value\": \"12,4 K\",\n \"change\": \"+1,2 K\",\n \"up\": true\n },\n {\n \"label\": \"Vorfälle\",\n \"value\": \"0\",\n \"change\": \"0\",\n \"up\": true\n },\n {\n \"label\": \"DSAR-Zeit\",\n \"value\": \"4 h\",\n \"change\": \"-12 h\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Quartalsaudit — Q1/2026\",\n \"value\": \"14 Tabellen · 847.000 Datensätze\",\n \"status\": \"Abgeschlossen\"\n },\n {\n \"name\": \"Auskunftsbegehren #421\",\n \"value\": \"Kunde Thomas Becker\",\n \"status\": \"Anonymisiert\"\n },\n {\n \"name\": \"DSFA aktualisiert\",\n \"value\": \"32 Verarbeitungen erfasst\",\n \"status\": \"Erstellt\"\n },\n {\n \"name\": \"Abgelaufene Einwilligungen — Stapel\",\n \"value\": \"45 Datensätze · Reopt-in\",\n \"status\": \"Ausstehend\"\n }\n ],\n \"workflowSteps\": [\n \"Täglicher Sweep gestartet…\",\n \"CloudTrail-Logs abrufen…\",\n \"Roberta scannt PII-Zugriffe…\",\n \"Verzweigung nach Befunden…\",\n \"Remediation-Agent wendet Fixes an…\",\n \"DSB benachrichtigen…\",\n \"Compliance-Bericht einreichen…\"\n ]\n },\n \"atendimento\": {\n \"title\": \"Support\",\n \"description\": \"Tickets, SLA, intelligente FAQ, CSAT — Camilla betreut die Kunden\",\n \"prompt\": \"Ticket #847 zu Lieferverzug beantworten und Versandstatus prüfen\",\n \"agentTask\": \"Ticket #847: Sendungsverfolgung prüfen, SLA bewerten, persönliche Antwort verfassen\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Camilla — ELO 1.780\",\n \"metrics\": [\n {\n \"label\": \"Offene Tickets\",\n \"value\": \"23\",\n \"change\": \"-12\",\n \"up\": true\n },\n {\n \"label\": \"SLA erfüllt\",\n \"value\": \"96 %\",\n \"change\": \"+4 pp\",\n \"up\": true\n },\n {\n \"label\": \"Antwortzeit\",\n \"value\": \"2 Min.\",\n \"change\": \"-8 Min.\",\n \"up\": true\n },\n {\n \"label\": \"CSAT\",\n \"value\": \"4,8/5\",\n \"change\": \"+0,3\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ticket #847 — Lieferverzug\",\n \"value\": \"Anna Schneider · SLA: 2 h verbleibend\",\n \"status\": \"In Bearbeitung\"\n },\n {\n \"name\": \"Ticket #845 — Produktumtausch\",\n \"value\": \"RMA-Genehmigung erstellt\",\n \"status\": \"Gelöst\"\n },\n {\n \"name\": \"FAQ aktualisiert — 12 Artikel\",\n \"value\": \"Wissensdatenbank\",\n \"status\": \"Veröffentlicht\"\n },\n {\n \"name\": \"Wöchentlicher CSAT\",\n \"value\": \"4,8/5 · 94 % Zufriedenheit\",\n \"status\": \"Berechnet\"\n }\n ],\n \"workflowSteps\": [\n \"Ticket #847 empfangen…\",\n \"Historie, Bestellung und FAQ parallel abrufen…\",\n \"Intent und Priorität klassifizieren…\",\n \"SLA und Dringlichkeit bewerten…\",\n \"Camilla entwirft personalisierte Antwort…\",\n \"Optionale menschliche Prüfung…\",\n \"Antwort an Kunden senden…\"\n ]\n },\n \"manufacturing\": {\n \"title\": \"Fertigung\",\n \"description\": \"Produktionsaufträge, Stückliste, MRP, Qualitätskontrolle, Wartung\",\n \"prompt\": \"Wochenproduktion via MRP planen und Materialverfügbarkeit prüfen\",\n \"agentTask\": \"Wochen-MRP: 34 Aufträge, 280 Stücklistenkomponenten, Kapazität von 5 Arbeitsplätzen\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"MRP Planner — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"Aktive Aufträge\",\n \"value\": \"34\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"OEE\",\n \"value\": \"87 %\",\n \"change\": \"+3 pp\",\n \"up\": true\n },\n {\n \"label\": \"Qualität\",\n \"value\": \"99,4 %\",\n \"change\": \"+0,2 pp\",\n \"up\": true\n },\n {\n \"label\": \"Ø Rüstzeit\",\n \"value\": \"12 Min.\",\n \"change\": \"-4 Min.\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Auftrag #1247 — Endprodukt A\",\n \"value\": \"500 Einh. · Stückliste 12 Teile\",\n \"status\": \"In Produktion\"\n },\n {\n \"name\": \"Qualitätsprüfung — Charge #892\",\n \"value\": \"99,4 % bestanden · 3 Abweichungen\",\n \"status\": \"Genehmigt\"\n },\n {\n \"name\": \"Vorbeugende Wartung — CNC-Drehmaschine\",\n \"value\": \"Geplant für Freitag\",\n \"status\": \"Geplant\"\n },\n {\n \"name\": \"MRP — Materialknappheit\",\n \"value\": \"Komponente Y · 5 Tage Lieferzeit\",\n \"status\": \"Warnung\"\n }\n ],\n \"workflowSteps\": [\n \"Wöchentlicher MRP-Cron gestartet…\",\n \"S&OP-Bedarf abrufen…\",\n \"Stückliste auflösen (280 Teile)…\",\n \"Bestand und Kapazität parallel prüfen…\",\n \"34 Fertigungsaufträge freigeben…\",\n \"Qualitätsprüfpunkte durchlaufen…\",\n \"Produktions-Dashboard veröffentlichen…\"\n ]\n },\n \"ecommerce\": {\n \"title\": \"E-Commerce\",\n \"description\": \"Katalog, Checkout, Kundenportal, Marktplatz-Integration\",\n \"prompt\": \"Katalog mit Marktplätzen synchronisieren und 45 offene Bestellungen verarbeiten\",\n \"agentTask\": \"1.200 SKUs mit Marktplätzen synchronisiert, Preise und Bestand in Echtzeit\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Storefront Agent — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"Bestellungen/Tag\",\n \"value\": \"127\",\n \"change\": \"+32\",\n \"up\": true\n },\n {\n \"label\": \"Monatlicher GMV\",\n \"value\": \"87.K €\",\n \"change\": \"+18 %\",\n \"up\": true\n },\n {\n \"label\": \"Warenkorbabbruch\",\n \"value\": \"24 %\",\n \"change\": \"-6 pp\",\n \"up\": true\n },\n {\n \"label\": \"NPS\",\n \"value\": \"72\",\n \"change\": \"+8\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Bestellung #E-4821 — Otto.de\",\n \"value\": \"185 € · 3 Artikel\",\n \"status\": \"Gesendet\"\n },\n {\n \"name\": \"Katalog-Sync — Otto.de\",\n \"value\": \"1.200 SKUs · 45 aktualisiert\",\n \"status\": \"Synchronisiert\"\n },\n {\n \"name\": \"Warenkorb wiedergewonnen — E-Mail #247\",\n \"value\": \"70 € · konvertiert\",\n \"status\": \"Wiederhergestellt\"\n },\n {\n \"name\": \"Kundenportal — Neuer Account\",\n \"value\": \"Delta GmbH\",\n \"status\": \"Aktiviert\"\n }\n ],\n \"workflowSteps\": [\n \"Kampagnen-Brief erhalten…\",\n \"Stratege zerlegt die Ziele…\",\n \"Design, Copy und Audience parallel…\",\n \"Endpaket der Kampagne zusammenstellen…\",\n \"Sendefenster planen…\",\n \"Über E-Mail-Provider versenden…\",\n \"Reichweite und Engagement messen…\"\n ]\n },\n \"logistics\": {\n \"title\": \"Logistik\",\n \"description\": \"Flotte, Außendienst, Serviceaufträge, Routen, Fahrzeugbestand\",\n \"prompt\": \"Lieferrouten für 28 Bestellungen im Großraum optimieren\",\n \"agentTask\": \"Routenplanung: 28 Lieferungen, 4 Fahrzeuge, km minimieren, Lieferfenster einhalten\",\n \"agentLeading\": \"führt das Team\",\n \"agentProcessing\": \"Verarbeitung\",\n \"agentName\": \"Route AI — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"Lieferungen/Tag\",\n \"value\": \"89\",\n \"change\": \"+15\",\n \"up\": true\n },\n {\n \"label\": \"Pünktlich\",\n \"value\": \"94 %\",\n \"change\": \"+3 pp\",\n \"up\": true\n },\n {\n \"label\": \"Gefahrene km\",\n \"value\": \"2,4 K\",\n \"change\": \"-12 %\",\n \"up\": true\n },\n {\n \"label\": \"Kosten/Lieferung\",\n \"value\": \"4,10 €\",\n \"change\": \"-0,90 €\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Route #R-47 — München Ost\",\n \"value\": \"8 Stopps · 42 km · 3 h\",\n \"status\": \"Unterwegs\"\n },\n {\n \"name\": \"Auftrag #1284 — Vorbeugende Wartung\",\n \"value\": \"Fahrzeug Kennz. M-AB 4821\",\n \"status\": \"Geplant\"\n },\n {\n \"name\": \"Fahrzeugbestand — Auffüllen\",\n \"value\": \"45 Artikel · Techn. Stefan\",\n \"status\": \"Wird geladen\"\n },\n {\n \"name\": \"Lieferung verspätet — Bestellung #4815\",\n \"value\": \"Kunde via SMS benachrichtigt\",\n \"status\": \"Benachrichtigt\"\n }\n ],\n \"workflowSteps\": [\n \"28 Bestellungen in der Warteschlange…\",\n \"Verkehr, Flotte und Zeitfenster parallel abfragen…\",\n \"Optimierer baut die Routen…\",\n \"Fahrzeuge entsenden…\",\n \"Kunden via SMS benachrichtigen…\",\n \"Tracking-Dashboard veröffentlichen…\"\n ]\n }\n },\n \"dashboard\": {\n \"live\": \"Live\",\n \"team\": \"KI-Team\",\n \"agentsLabel\": \"Agenten\",\n \"completed\": \"abgeschlossen\",\n \"lead\": \"Leiter\",\n \"supporting\": \"Co-Pilot\",\n \"supportingDesc\": \"Hilfsagenten\",\n \"time\": \"Zeit\",\n \"cost\": \"Kosten\",\n \"agentsCount\": \"Agenten\",\n \"embed\": \"Einbetten\",\n \"pdf\": \"PDF\",\n \"nextUpdate\": \"Nächste: morgen 6:00\",\n \"dashboardSuffix\": \"Dashboard\"\n }\n}","{\n \"badge\": \"Pregunta → Orquesta → Entrega\",\n \"title\": \"Cada departamento,\",\n \"titleAccent\": \"un agente especializado\",\n \"subtitle\": \"Escribes una solicitud. El canvas de Astrlabe orquesta los agentes y datasources. El panel del ERP entrega el resultado. Todo en un único flujo.\",\n \"conversation\": \"Conversación — {persona} · {department}\",\n \"composerHint\": \"Mensaje a Kori AI…\",\n \"composerEnter\": \"⏎ enviar\",\n \"assistantResponse\": \"Entendido. Activaré {count} agentes especializados y orquestaré el flujo en Astrlabe.\",\n \"stageAsk\": \"Pregunta\",\n \"stageOrchestrate\": \"Orquesta\",\n \"stageDeliver\": \"Entrega\",\n \"footerInput\": \"El usuario envía una solicitud al asistente…\",\n \"footerWorkflow\": \"Astrlabe orquestando agentes y datasources…\",\n \"footerDashboard\": \"Listo — panel del ERP actualizado.\",\n \"workflowStep\": \"Paso {current} de {total}\",\n \"departments\": {\n \"vendas\": {\n \"title\": \"Ventas\",\n \"description\": \"Pipeline, CRM, presupuestos, metas — Beatriz lidera el ciclo comercial\",\n \"prompt\": \"Calificar lead empresa XPTO y generar propuesta con descuento progresivo\",\n \"agentTask\": \"Calificando 12 leads, generando propuestas con tabla de precios y descuento progresivo\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Beatriz — ELO 2.050\",\n \"metrics\": [\n {\n \"label\": \"Ingresos mensuales\",\n \"value\": \"175.K €\",\n \"change\": \"+12%\",\n \"up\": true\n },\n {\n \"label\": \"Pipeline\",\n \"value\": \"380.K €\",\n \"change\": \"+28%\",\n \"up\": true\n },\n {\n \"label\": \"Conversión\",\n \"value\": \"34%\",\n \"change\": \"+5pp\",\n \"up\": true\n },\n {\n \"label\": \"Ticket medio\",\n \"value\": \"660 €\",\n \"change\": \"+8%\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Pedido #4821 — Industrias Acme\",\n \"value\": \"5.060 €\",\n \"status\": \"Aprobado\"\n },\n {\n \"name\": \"Propuesta CPQ #892 — Comercial Northwind\",\n \"value\": \"3.760 € (8% dto.)\",\n \"status\": \"Pendiente\"\n },\n {\n \"name\": \"Oportunidad — Distribuciones Contoso\",\n \"value\": \"8.700 € · 70% prob.\",\n \"status\": \"Negociación\"\n },\n {\n \"name\": \"WhatsApp — Seguimiento Delta\",\n \"value\": \"Mensaje enviado\",\n \"status\": \"Enviado\"\n }\n ],\n \"workflowSteps\": [\n \"Lead recibido — XPTO SL…\",\n \"CRM enriqueciendo el lead…\",\n \"Beatriz analizando encaje comercial…\",\n \"Enrutando por score (85/100 → calificar)…\",\n \"Calificando como SQL y abriendo oportunidad…\",\n \"Redactando propuesta desde plantilla CPQ…\",\n \"Beatriz pilotando la negociación…\",\n \"Trato cerrado — registrando ingresos…\"\n ]\n },\n \"fiscal\": {\n \"title\": \"Fiscal\",\n \"description\": \"Facturas, IVA, retenciones, auditoría — Carlos domina lo tributario\",\n \"prompt\": \"Emitir factura para venta interprovincial y calcular impuestos aplicables\",\n \"agentTask\": \"Calculando IVA y retenciones, generando factura y enviando a la AEAT\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Carlos — ELO 2.380\",\n \"metrics\": [\n {\n \"label\": \"Facturas emitidas\",\n \"value\": \"1.284\",\n \"change\": \"+180\",\n \"up\": true\n },\n {\n \"label\": \"Validación AEAT\",\n \"value\": \"99,8%\",\n \"change\": \"+0,1pp\",\n \"up\": true\n },\n {\n \"label\": \"Tiempo emisión\",\n \"value\": \"2,3s\",\n \"change\": \"-0,8s\",\n \"up\": true\n },\n {\n \"label\": \"IVA recaudado\",\n \"value\": \"124.K €\",\n \"change\": \"+5%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Factura #9821 — intracomunitaria\",\n \"value\": \"1.850 € · IVA 333 €\",\n \"status\": \"Autorizada\"\n },\n {\n \"name\": \"Factura #9820 — Rechazada\",\n \"value\": \"código tributario incorrecto\",\n \"status\": \"Rechazada\"\n },\n {\n \"name\": \"Modelo 303 — Marzo 2026\",\n \"value\": \"2.847 asientos\",\n \"status\": \"Generado\"\n },\n {\n \"name\": \"Modelo 111 — Periodo 02\",\n \"value\": \"9.380 € en retenciones\",\n \"status\": \"Transmitida\"\n }\n ],\n \"workflowSteps\": [\n \"Disparando cierre trimestral…\",\n \"Recuperando transacciones Q4…\",\n \"Calculando IVA y retenciones en paralelo…\",\n \"Carlos consolidando la liquidación…\",\n \"Auditando reglas de cumplimiento fiscal…\",\n \"Publicando informe fiscal…\"\n ]\n },\n \"financeiro\": {\n \"title\": \"Finanzas\",\n \"description\": \"Flujo de caja, P&G, conciliación bancaria — Ana gestiona el ciclo\",\n \"prompt\": \"Conciliar extracto bancario y generar P&G con análisis de tendencias\",\n \"agentTask\": \"Conciliando 847 movimientos bancarios, clasificando por plan de cuentas\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Ana — ELO 2.150\",\n \"metrics\": [\n {\n \"label\": \"Facturación\",\n \"value\": \"495.K €\",\n \"change\": \"+8%\",\n \"up\": true\n },\n {\n \"label\": \"Margen EBITDA\",\n \"value\": \"18%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Cuentas por cobrar\",\n \"value\": \"78.K €\",\n \"change\": \"-15%\",\n \"up\": true\n },\n {\n \"label\": \"Morosidad\",\n \"value\": \"2,1%\",\n \"change\": \"-0,8pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"BBVA — Conciliación marzo\",\n \"value\": \"847 apuntes · 98% automático\",\n \"status\": \"Completada\"\n },\n {\n \"name\": \"P&G Trimestral Q1/2026\",\n \"value\": \"Ingresos 495.K € · Beneficio 89.K €\",\n \"status\": \"Generado\"\n },\n {\n \"name\": \"Recibo vencido — Cliente Beta\",\n \"value\": \"1.730 € · 15 días\",\n \"status\": \"Cobranza\"\n },\n {\n \"name\": \"Flujo de caja — Previsión abril\",\n \"value\": \"Saldo positivo 24.800 €\",\n \"status\": \"Proyectado\"\n }\n ],\n \"workflowSteps\": [\n \"Disparando cierre mensual…\",\n \"Recuperando extracto BBVA…\",\n \"Ana clasificando asientos por plan contable…\",\n \"Consolidando estados financieros…\",\n \"Auditando reglas contables…\",\n \"Publicando dashboard financiero…\"\n ]\n },\n \"estoque\": {\n \"title\": \"Inventario\",\n \"description\": \"Curva ABC, punto de pedido, inventario rotativo — Pablo monitorea todo\",\n \"prompt\": \"Ejecutar inventario rotativo clase A y generar pedidos de compra\",\n \"agentTask\": \"Inventario rotativo: contando 180 SKUs clase A, ajustando diferencias\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Pablo — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"SKUs activos\",\n \"value\": \"1.847\",\n \"change\": \"+42\",\n \"up\": true\n },\n {\n \"label\": \"Rotación\",\n \"value\": \"8,2x\",\n \"change\": \"+1,1x\",\n \"up\": true\n },\n {\n \"label\": \"Roturas stock\",\n \"value\": \"3\",\n \"change\": \"-8\",\n \"up\": true\n },\n {\n \"label\": \"Precisión\",\n \"value\": \"99,2%\",\n \"change\": \"+0,4pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"OC #OC-291 — Proveedor Alpha\",\n \"value\": \"450 uds. · 2.900 €\",\n \"status\": \"Enviado\"\n },\n {\n \"name\": \"Traslado — CD Madrid → tienda Valencia\",\n \"value\": \"120 SKUs · 2.400 uds.\",\n \"status\": \"En tránsito\"\n },\n {\n \"name\": \"Alerta rotura — Componente X\",\n \"value\": \"45 uds. (mín: 100)\",\n \"status\": \"Crítico\"\n },\n {\n \"name\": \"Inventario rotativo — Clase A\",\n \"value\": \"180 SKUs · 99,2% precisión\",\n \"status\": \"Completado\"\n }\n ],\n \"workflowSteps\": [\n \"Cron diario 06:00 disparado…\",\n \"Leyendo niveles de stock (1.847 SKUs)…\",\n \"Pablo previendo demanda con estacionalidad…\",\n \"Filtrando SKUs por debajo del punto de pedido…\",\n \"Iterando 12 SKUs marcados…\",\n \"Seleccionando proveedor por SKU…\",\n \"Emitiendo órdenes de compra…\",\n \"Publicando informe de reposición…\"\n ]\n },\n \"rh\": {\n \"title\": \"RR. HH.\",\n \"description\": \"Nómina, vacaciones, contratos, reclutamiento — Laura automatiza el DP\",\n \"prompt\": \"Procesar nómina de marzo y generar reportes de cumplimiento\",\n \"agentTask\": \"Nómina marzo: calculando 142 recibos, retenciones SS e IRPF, generando eventos\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Laura — ELO 1.920\",\n \"metrics\": [\n {\n \"label\": \"Plantilla\",\n \"value\": \"142\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Rotación\",\n \"value\": \"3,2%\",\n \"change\": \"-1,5pp\",\n \"up\": true\n },\n {\n \"label\": \"Seg. Social\",\n \"value\": \"100%\",\n \"change\": \"al día\",\n \"up\": true\n },\n {\n \"label\": \"Nómina mensual\",\n \"value\": \"185.K €\",\n \"change\": \"+4%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Nómina marzo — 142 empleados\",\n \"value\": \"185.K € bruto · 56.K € cargas\",\n \"status\": \"Procesada\"\n },\n {\n \"name\": \"TC1 SS — Cotización\",\n \"value\": \"142 eventos transmitidos\",\n \"status\": \"Enviado\"\n },\n {\n \"name\": \"Vacaciones — Javier Sánchez\",\n \"value\": \"30 días · 1.620 €\",\n \"status\": \"Aprobado\"\n },\n {\n \"name\": \"Vacante abierta — Dev Senior\",\n \"value\": \"47 candidatos · 5 cribados\",\n \"status\": \"Reclutando\"\n }\n ],\n \"workflowSteps\": [\n \"Mes cerrado — disparando nómina…\",\n \"Recuperando registros de fichaje…\",\n \"Calculando SS, IRPF y desempleo en paralelo…\",\n \"Laura agregando recibos…\",\n \"Generando TC1 SS…\",\n \"Transmitiendo a la Tesorería…\",\n \"Publicando dashboard de nómina…\"\n ]\n },\n \"compliance\": {\n \"title\": \"GDPR\",\n \"description\": \"Auditoría GDPR, consentimientos, anonimización, evaluaciones de impacto\",\n \"prompt\": \"Auditar datos personales en todas las tablas y generar EIPD\",\n \"agentTask\": \"Auditoría completa: escaneando 14 tablas, mapeando PII, verificando bases legales\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Roberta — ELO 2.200\",\n \"metrics\": [\n {\n \"label\": \"Cumplimiento\",\n \"value\": \"98%\",\n \"change\": \"+2pp\",\n \"up\": true\n },\n {\n \"label\": \"Consentimientos\",\n \"value\": \"12,4K\",\n \"change\": \"+1,2K\",\n \"up\": true\n },\n {\n \"label\": \"Incidentes\",\n \"value\": \"0\",\n \"change\": \"0\",\n \"up\": true\n },\n {\n \"label\": \"Tiempo DSAR\",\n \"value\": \"4h\",\n \"change\": \"-12h\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Auditoría trimestral — Q1/2026\",\n \"value\": \"14 tablas · 847.000 registros\",\n \"status\": \"Completada\"\n },\n {\n \"name\": \"DSAR — Solicitud de borrado #421\",\n \"value\": \"Cliente Manuel Pérez\",\n \"status\": \"Anonimizado\"\n },\n {\n \"name\": \"EIPD actualizada\",\n \"value\": \"32 tratamientos mapeados\",\n \"status\": \"Generado\"\n },\n {\n \"name\": \"Consentimiento caducado — Lote\",\n \"value\": \"45 registros · revalidación\",\n \"status\": \"Pendiente\"\n }\n ],\n \"workflowSteps\": [\n \"Sweep diario iniciado…\",\n \"Recuperando logs de auditoría…\",\n \"Roberta escaneando acceso a PII…\",\n \"Bifurcando por hallazgos…\",\n \"Agente de remediación aplicando correcciones…\",\n \"Notificando al DPD…\",\n \"Archivando informe de cumplimiento…\"\n ]\n },\n \"atendimento\": {\n \"title\": \"Soporte\",\n \"description\": \"Tickets, SLA, FAQ inteligente, CSAT — Camila atiende a tus clientes\",\n \"prompt\": \"Responder ticket #847 sobre retraso de entrega y verificar estado logístico\",\n \"agentTask\": \"Ticket #847: consultando rastreo, verificando SLA y preparando respuesta\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Camila — ELO 1.780\",\n \"metrics\": [\n {\n \"label\": \"Tickets abiertos\",\n \"value\": \"23\",\n \"change\": \"-12\",\n \"up\": true\n },\n {\n \"label\": \"SLA cumplido\",\n \"value\": \"96%\",\n \"change\": \"+4pp\",\n \"up\": true\n },\n {\n \"label\": \"Tiempo respuesta\",\n \"value\": \"2min\",\n \"change\": \"-8min\",\n \"up\": true\n },\n {\n \"label\": \"CSAT\",\n \"value\": \"4,8/5\",\n \"change\": \"+0,3\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ticket #847 — Retraso entrega\",\n \"value\": \"María García · SLA: 2h restantes\",\n \"status\": \"En curso\"\n },\n {\n \"name\": \"Ticket #845 — Cambio producto\",\n \"value\": \"Autorización RMA emitida\",\n \"status\": \"Resuelto\"\n },\n {\n \"name\": \"FAQ actualizada — 12 artículos\",\n \"value\": \"Base de conocimiento\",\n \"status\": \"Publicado\"\n },\n {\n \"name\": \"CSAT semanal\",\n \"value\": \"4,8/5 · 94% satisfacción\",\n \"status\": \"Calculado\"\n }\n ],\n \"workflowSteps\": [\n \"Ticket #847 recibido…\",\n \"Recuperando historial, pedido y FAQ en paralelo…\",\n \"Clasificando intención y prioridad…\",\n \"Evaluando SLA y urgencia…\",\n \"Camila redactando respuesta personalizada…\",\n \"Revisión humana opcional…\",\n \"Enviando respuesta al cliente…\"\n ]\n },\n \"manufacturing\": {\n \"title\": \"Producción\",\n \"description\": \"Órdenes de producción, BOM, MRP, control de calidad, mantenimiento\",\n \"prompt\": \"Planificar producción semanal con MRP y verificar materia prima\",\n \"agentTask\": \"MRP semanal: 34 órdenes, verificando 280 componentes BOM y capacidad de 5 centros\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"MRP Planner — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"OF activas\",\n \"value\": \"34\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"OEE\",\n \"value\": \"87%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Calidad\",\n \"value\": \"99,4%\",\n \"change\": \"+0,2pp\",\n \"up\": true\n },\n {\n \"label\": \"Setup medio\",\n \"value\": \"12min\",\n \"change\": \"-4min\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"OF #1247 — Producto Final A\",\n \"value\": \"500 uds. · BOM 12 componentes\",\n \"status\": \"En producción\"\n },\n {\n \"name\": \"Inspección calidad — Lote #892\",\n \"value\": \"99,4% aprobación · 3 desviaciones\",\n \"status\": \"Aprobado\"\n },\n {\n \"name\": \"Mantenimiento preventivo — Torno CNC\",\n \"value\": \"Programado para viernes\",\n \"status\": \"Programado\"\n },\n {\n \"name\": \"MRP — Falta materia prima\",\n \"value\": \"Componente Y · plazo 5 días\",\n \"status\": \"Alerta\"\n }\n ],\n \"workflowSteps\": [\n \"Cron semanal MRP disparado…\",\n \"Recuperando demanda S&OP…\",\n \"Explotando BOM (280 componentes)…\",\n \"Verificando stock y capacidad en paralelo…\",\n \"Liberando 34 órdenes de fabricación…\",\n \"Ejecutando puntos de control calidad…\",\n \"Publicando panel de producción…\"\n ]\n },\n \"ecommerce\": {\n \"title\": \"E-commerce\",\n \"description\": \"Catálogo, checkout, portal de cliente, integración con marketplaces\",\n \"prompt\": \"Sincronizar catálogo con marketplaces y procesar 45 pedidos pendientes\",\n \"agentTask\": \"Sincronizando 1.200 SKUs con marketplaces, actualizando precios y stock\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Storefront Agent — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"Pedidos/día\",\n \"value\": \"127\",\n \"change\": \"+32\",\n \"up\": true\n },\n {\n \"label\": \"GMV mensual\",\n \"value\": \"87.K €\",\n \"change\": \"+18%\",\n \"up\": true\n },\n {\n \"label\": \"Carrito abandonado\",\n \"value\": \"24%\",\n \"change\": \"-6pp\",\n \"up\": true\n },\n {\n \"label\": \"NPS\",\n \"value\": \"72\",\n \"change\": \"+8\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Pedido #E-4821 — Amazon ES\",\n \"value\": \"185 € · 3 ítems\",\n \"status\": \"Enviado\"\n },\n {\n \"name\": \"Sync catálogo — Amazon ES\",\n \"value\": \"1.200 SKUs · 45 actualizados\",\n \"status\": \"Sincronizado\"\n },\n {\n \"name\": \"Carrito recuperado — email #247\",\n \"value\": \"70 € · convertido\",\n \"status\": \"Recuperado\"\n },\n {\n \"name\": \"Portal cliente — Nueva cuenta\",\n \"value\": \"Delta SL\",\n \"status\": \"Activado\"\n }\n ],\n \"workflowSteps\": [\n \"Brief de campaña recibido…\",\n \"Estratega descomponiendo objetivos…\",\n \"Diseño, copy y audiencia en paralelo…\",\n \"Ensamblando paquete final…\",\n \"Programando ventana de envío…\",\n \"Disparando vía proveedor de email…\",\n \"Midiendo alcance y engagement…\"\n ]\n },\n \"logistics\": {\n \"title\": \"Logística\",\n \"description\": \"Flota, servicio en campo, órdenes de servicio, rutas, stock en furgón\",\n \"prompt\": \"Optimizar rutas de entrega para 28 pedidos en el área metropolitana\",\n \"agentTask\": \"Rutas: 28 entregas, 4 vehículos, minimizando km y respetando ventanas\",\n \"agentLeading\": \"liderando el equipo\",\n \"agentProcessing\": \"Procesando\",\n \"agentName\": \"Route AI — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"Entregas/día\",\n \"value\": \"89\",\n \"change\": \"+15\",\n \"up\": true\n },\n {\n \"label\": \"On-time\",\n \"value\": \"94%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Km recorridos\",\n \"value\": \"2,4K\",\n \"change\": \"-12%\",\n \"up\": true\n },\n {\n \"label\": \"Coste/entrega\",\n \"value\": \"4,10 €\",\n \"change\": \"-0,90 €\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ruta #R-47 — Madrid centro\",\n \"value\": \"8 paradas · 42km · 3h\",\n \"status\": \"En ruta\"\n },\n {\n \"name\": \"OS #1284 — Mantenimiento preventivo\",\n \"value\": \"Vehículo matrícula 4821-MAD\",\n \"status\": \"Programado\"\n },\n {\n \"name\": \"Furgoneta — Reabastecimiento\",\n \"value\": \"45 ítems · Téc. Javier\",\n \"status\": \"Cargando\"\n },\n {\n \"name\": \"Entrega retrasada — Pedido #4815\",\n \"value\": \"Cliente avisado por WhatsApp\",\n \"status\": \"Notificado\"\n }\n ],\n \"workflowSteps\": [\n \"28 pedidos en cola…\",\n \"Consultando tráfico, flota y ventanas en paralelo…\",\n \"Optimizador construyendo rutas…\",\n \"Despachando vehículos…\",\n \"Notificando clientes vía WhatsApp…\",\n \"Publicando panel de tracking…\"\n ]\n }\n },\n \"dashboard\": {\n \"live\": \"En vivo\",\n \"team\": \"Equipo IA\",\n \"agentsLabel\": \"agentes\",\n \"completed\": \"completado\",\n \"lead\": \"Líder\",\n \"supporting\": \"Copiloto\",\n \"supportingDesc\": \"agentes de apoyo\",\n \"time\": \"Tiempo\",\n \"cost\": \"Coste\",\n \"agentsCount\": \"Agentes\",\n \"embed\": \"Embed\",\n \"pdf\": \"PDF\",\n \"nextUpdate\": \"Próximo: mañana 6:00\",\n \"dashboardSuffix\": \"Dashboard\"\n }\n}","{\n \"badge\": \"Demandez → Orchestrez → Livrez\",\n \"title\": \"Chaque département,\",\n \"titleAccent\": \"un agent IA spécialisé\",\n \"subtitle\": \"Vous saisissez une requête. Le canevas Astrlabe orchestre les agents et sources de données. Le tableau de bord ERP livre le résultat. Tout en un seul flux.\",\n \"conversation\": \"Conversation — {persona} · {department}\",\n \"composerHint\": \"Message à Kori AI…\",\n \"composerEnter\": \"⏎ envoyer\",\n \"assistantResponse\": \"Compris. Je vais activer {count} agents spécialisés et orchestrer le flux sur Astrlabe.\",\n \"stageAsk\": \"Demander\",\n \"stageOrchestrate\": \"Orchestrer\",\n \"stageDeliver\": \"Livrer\",\n \"footerInput\": \"L'utilisateur envoie une requête à l'assistant…\",\n \"footerWorkflow\": \"Astrlabe orchestre les agents et sources de données…\",\n \"footerDashboard\": \"Terminé — tableau de bord ERP mis à jour.\",\n \"workflowStep\": \"Étape {current} sur {total}\",\n \"departments\": {\n \"vendas\": {\n \"title\": \"Ventes\",\n \"description\": \"Pipeline, CRM, devis, objectifs — Béatrice pilote le cycle commercial\",\n \"prompt\": \"Qualifier le lead XPTO et générer une proposition avec remise progressive\",\n \"agentTask\": \"Qualification de 12 leads, génération de propositions avec grille tarifaire\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Béatrice — ELO 2 050\",\n \"metrics\": [\n {\n \"label\": \"Revenu mensuel\",\n \"value\": \"175 K €\",\n \"change\": \"+12 %\",\n \"up\": true\n },\n {\n \"label\": \"Pipeline\",\n \"value\": \"380 K €\",\n \"change\": \"+28 %\",\n \"up\": true\n },\n {\n \"label\": \"Taux de conversion\",\n \"value\": \"34 %\",\n \"change\": \"+5 pp\",\n \"up\": true\n },\n {\n \"label\": \"Panier moyen\",\n \"value\": \"660 €\",\n \"change\": \"+8 %\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Commande #4821 — Acme Industrie\",\n \"value\": \"5 060 €\",\n \"status\": \"Approuvé\"\n },\n {\n \"name\": \"Devis CPQ #892 — Northwind Distribution\",\n \"value\": \"3 760 € (-8 %)\",\n \"status\": \"En attente\"\n },\n {\n \"name\": \"Opportunité — Contoso Grossiste\",\n \"value\": \"8 700 € · 70 % de chance\",\n \"status\": \"Négociation\"\n },\n {\n \"name\": \"WhatsApp — Relance Delta\",\n \"value\": \"Message envoyé\",\n \"status\": \"Envoyé\"\n }\n ],\n \"workflowSteps\": [\n \"Lead reçu — XPTO SARL…\",\n \"CRM enrichit le lead…\",\n \"Béatrice analyse le fit commercial…\",\n \"Routage par score (85/100 → qualifier)…\",\n \"Qualification SQL et ouverture de l'opportunité…\",\n \"Rédaction de la proposition depuis le modèle CPQ…\",\n \"Béatrice pilote la négociation…\",\n \"Deal clôturé — chiffre d'affaires enregistré…\"\n ]\n },\n \"fiscal\": {\n \"title\": \"Fiscal\",\n \"description\": \"Factures, TVA, audits — Charles maîtrise la conformité fiscale\",\n \"prompt\": \"Émettre une facture pour vente intracommunautaire et calculer la TVA\",\n \"agentTask\": \"Calcul de la TVA, génération de la facture et envoi aux impôts\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Charles — ELO 2 380\",\n \"metrics\": [\n {\n \"label\": \"Factures émises\",\n \"value\": \"1 284\",\n \"change\": \"+180\",\n \"up\": true\n },\n {\n \"label\": \"Validation DGFiP\",\n \"value\": \"99,8 %\",\n \"change\": \"+0,1 pp\",\n \"up\": true\n },\n {\n \"label\": \"Temps d'émission\",\n \"value\": \"2,3 s\",\n \"change\": \"-0,8 s\",\n \"up\": true\n },\n {\n \"label\": \"TVA collectée\",\n \"value\": \"124 K €\",\n \"change\": \"+5 %\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Facture #9821 — intracommunautaire\",\n \"value\": \"1 850 € · TVA 333 €\",\n \"status\": \"Autorisée\"\n },\n {\n \"name\": \"Facture #9820 — Rejetée\",\n \"value\": \"code TVA incompatible\",\n \"status\": \"Rejetée\"\n },\n {\n \"name\": \"Liasse fiscale — Mars 2026\",\n \"value\": \"2 847 écritures\",\n \"status\": \"Générée\"\n },\n {\n \"name\": \"CA3 — Période 02\",\n \"value\": \"9 380 € de TVA\",\n \"status\": \"Transmise\"\n }\n ],\n \"workflowSteps\": [\n \"Lancement de la clôture trimestrielle…\",\n \"Récupération des transactions Q4…\",\n \"Calcul TVA et autoliquidation en parallèle…\",\n \"Charles consolide la déclaration fiscale…\",\n \"Audit des règles de conformité…\",\n \"Publication du rapport fiscal…\"\n ]\n },\n \"financeiro\": {\n \"title\": \"Finance\",\n \"description\": \"Flux de trésorerie, compte de résultat, rapprochement bancaire — Anna gère\",\n \"prompt\": \"Rapprocher le relevé bancaire et générer le compte de résultat\",\n \"agentTask\": \"Rapprochement automatique de 847 écritures, classement par plan comptable\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Anne — ELO 2 150\",\n \"metrics\": [\n {\n \"label\": \"Chiffre d'affaires\",\n \"value\": \"495 K €\",\n \"change\": \"+8 %\",\n \"up\": true\n },\n {\n \"label\": \"Marge EBITDA\",\n \"value\": \"18 %\",\n \"change\": \"+3 pp\",\n \"up\": true\n },\n {\n \"label\": \"Créances clients\",\n \"value\": \"78 K €\",\n \"change\": \"-15 %\",\n \"up\": true\n },\n {\n \"label\": \"Impayés\",\n \"value\": \"2,1 %\",\n \"change\": \"-0,8 pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"BNP Paribas — Rapprochement mars\",\n \"value\": \"847 écritures · 98 % auto\",\n \"status\": \"Terminée\"\n },\n {\n \"name\": \"Compte de résultat T1/2026\",\n \"value\": \"CA 495 K € · Bénéfice 89 K €\",\n \"status\": \"Généré\"\n },\n {\n \"name\": \"Facture impayée — Client Beta\",\n \"value\": \"1 730 € · 15 jours\",\n \"status\": \"Recouvrement\"\n },\n {\n \"name\": \"Trésorerie — Prévision avril\",\n \"value\": \"Solde positif 24 800 €\",\n \"status\": \"Projeté\"\n }\n ],\n \"workflowSteps\": [\n \"Lancement de la clôture mensuelle…\",\n \"Récupération du relevé BNP Paribas…\",\n \"Anne ventile les écritures sur le plan comptable…\",\n \"Consolidation des états financiers…\",\n \"Audit des règles comptables…\",\n \"Publication du tableau de bord finance…\"\n ]\n },\n \"estoque\": {\n \"title\": \"Stock\",\n \"description\": \"Analyse ABC, point de commande, inventaire tournant — Paul surveille tout\",\n \"prompt\": \"Lancer inventaire tournant classe A et générer commandes auto\",\n \"agentTask\": \"Inventaire tournant : 180 SKU classe A, ajustement automatique des écarts\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Paul — ELO 1 850\",\n \"metrics\": [\n {\n \"label\": \"SKU actifs\",\n \"value\": \"1 847\",\n \"change\": \"+42\",\n \"up\": true\n },\n {\n \"label\": \"Rotation\",\n \"value\": \"8,2x\",\n \"change\": \"+1,1x\",\n \"up\": true\n },\n {\n \"label\": \"Ruptures\",\n \"value\": \"3\",\n \"change\": \"-8\",\n \"up\": true\n },\n {\n \"label\": \"Précision\",\n \"value\": \"99,2 %\",\n \"change\": \"+0,4 pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"BC #BC-291 — Fournisseur Alpha\",\n \"value\": \"450 unités · 2 900 €\",\n \"status\": \"Envoyé\"\n },\n {\n \"name\": \"Transfert — Entrepôt Île-de-France → magasin Auvergne\",\n \"value\": \"120 SKU · 2 400 unités\",\n \"status\": \"En transit\"\n },\n {\n \"name\": \"Alerte rupture — Composant X\",\n \"value\": \"45 unités (min : 100)\",\n \"status\": \"Critique\"\n },\n {\n \"name\": \"Inventaire tournant — Classe A\",\n \"value\": \"180 SKU · 99,2 % de précision\",\n \"status\": \"Terminé\"\n }\n ],\n \"workflowSteps\": [\n \"Cron quotidien 6 h déclenché…\",\n \"Lecture des niveaux de stock (1 847 SKU)…\",\n \"Paul prévoit la demande saisonnière…\",\n \"Filtrage des SKU sous le point de commande…\",\n \"Itération sur 12 SKU signalés…\",\n \"Sélection du fournisseur par SKU…\",\n \"Émission des bons de commande…\",\n \"Publication du rapport de réapprovisionnement…\"\n ]\n },\n \"rh\": {\n \"title\": \"RH\",\n \"description\": \"Paie, congés, contrats, recrutement — Laura automatise\",\n \"prompt\": \"Traiter la paie de mars et générer les déclarations sociales\",\n \"agentTask\": \"Paie mars : calcul de 142 bulletins, charges sociales, génération DSN\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Laure — ELO 1 920\",\n \"metrics\": [\n {\n \"label\": \"Effectif\",\n \"value\": \"142\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Turnover\",\n \"value\": \"3,2 %\",\n \"change\": \"-1,5 pp\",\n \"up\": true\n },\n {\n \"label\": \"DSN\",\n \"value\": \"100 %\",\n \"change\": \"à jour\",\n \"up\": true\n },\n {\n \"label\": \"Paie mensuelle\",\n \"value\": \"185 K €\",\n \"change\": \"+4 %\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Paie mars — 142 collaborateurs\",\n \"value\": \"185 K € brut · 56 K € charges\",\n \"status\": \"Traitée\"\n },\n {\n \"name\": \"DSN — Rémunération\",\n \"value\": \"142 événements transmis\",\n \"status\": \"Envoyé\"\n },\n {\n \"name\": \"Congés — Julien Lefèvre\",\n \"value\": \"30 jours · 1 620 €\",\n \"status\": \"Approuvé\"\n },\n {\n \"name\": \"Poste ouvert — Dev Senior\",\n \"value\": \"47 candidats · 5 présélectionnés\",\n \"status\": \"Recrutement\"\n }\n ],\n \"workflowSteps\": [\n \"Mois clôturé — lancement de la paie…\",\n \"Récupération des pointages…\",\n \"Calcul URSSAF, CSG, retraite en parallèle…\",\n \"Laure agrège les bulletins…\",\n \"Génération de la DSN…\",\n \"Dépôt à net-entreprises…\",\n \"Publication du tableau de bord paie…\"\n ]\n },\n \"compliance\": {\n \"title\": \"RGPD\",\n \"description\": \"Audit RGPD, consentements, anonymisation, analyses d'impact\",\n \"prompt\": \"Auditer les données personnelles et générer l'AIPD à jour\",\n \"agentTask\": \"Audit complet : 14 tables scannées, PII cartographiée, bases légales vérifiées\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Roberte — ELO 2 200\",\n \"metrics\": [\n {\n \"label\": \"Conformité\",\n \"value\": \"98 %\",\n \"change\": \"+2 pp\",\n \"up\": true\n },\n {\n \"label\": \"Consentements\",\n \"value\": \"12,4 K\",\n \"change\": \"+1,2 K\",\n \"up\": true\n },\n {\n \"label\": \"Incidents\",\n \"value\": \"0\",\n \"change\": \"0\",\n \"up\": true\n },\n {\n \"label\": \"Délai DSAR\",\n \"value\": \"4 h\",\n \"change\": \"-12 h\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Audit trimestriel — T1/2026\",\n \"value\": \"14 tables · 847 000 enregistrements\",\n \"status\": \"Terminé\"\n },\n {\n \"name\": \"DSAR — Demande d'effacement #421\",\n \"value\": \"Client Pierre Moreau\",\n \"status\": \"Anonymisé\"\n },\n {\n \"name\": \"AIPD mise à jour\",\n \"value\": \"32 traitements cartographiés\",\n \"status\": \"Générée\"\n },\n {\n \"name\": \"Consentements expirés — Lot\",\n \"value\": \"45 enregistrements · revalidation\",\n \"status\": \"En attente\"\n }\n ],\n \"workflowSteps\": [\n \"Sweep quotidien démarré…\",\n \"Récupération des logs CloudTrail…\",\n \"Roberte scanne les accès aux données personnelles…\",\n \"Bifurcation selon les constats…\",\n \"Agent de remédiation applique les correctifs…\",\n \"Notification de la CNIL/DPO…\",\n \"Dépôt du rapport de conformité…\"\n ]\n },\n \"atendimento\": {\n \"title\": \"Support\",\n \"description\": \"Tickets, SLA, FAQ intelligente, CSAT — Camille gère vos clients\",\n \"prompt\": \"Répondre au ticket #847 sur un retard de livraison et vérifier le suivi\",\n \"agentTask\": \"Ticket #847 : consultation du suivi, vérification du SLA, rédaction de la réponse\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Camille — ELO 1 780\",\n \"metrics\": [\n {\n \"label\": \"Tickets ouverts\",\n \"value\": \"23\",\n \"change\": \"-12\",\n \"up\": true\n },\n {\n \"label\": \"SLA respecté\",\n \"value\": \"96 %\",\n \"change\": \"+4 pp\",\n \"up\": true\n },\n {\n \"label\": \"Temps de réponse\",\n \"value\": \"2 min\",\n \"change\": \"-8 min\",\n \"up\": true\n },\n {\n \"label\": \"CSAT\",\n \"value\": \"4,8/5\",\n \"change\": \"+0,3\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ticket #847 — Retard de livraison\",\n \"value\": \"Camille Bernard · SLA : 2 h restantes\",\n \"status\": \"En cours\"\n },\n {\n \"name\": \"Ticket #845 — Échange produit\",\n \"value\": \"Autorisation RMA émise\",\n \"status\": \"Résolu\"\n },\n {\n \"name\": \"FAQ mise à jour — 12 articles\",\n \"value\": \"Base de connaissances\",\n \"status\": \"Publié\"\n },\n {\n \"name\": \"CSAT hebdomadaire\",\n \"value\": \"4,8/5 · 94 % satisfaction\",\n \"status\": \"Calculé\"\n }\n ],\n \"workflowSteps\": [\n \"Ticket #847 reçu…\",\n \"Récupération historique, commande et FAQ en parallèle…\",\n \"Classification de l'intention et de la priorité…\",\n \"Évaluation SLA et urgence…\",\n \"Camille rédige la réponse personnalisée…\",\n \"Revue humaine optionnelle…\",\n \"Envoi de la réponse au client…\"\n ]\n },\n \"manufacturing\": {\n \"title\": \"Production\",\n \"description\": \"Ordres de fabrication, nomenclature, MRP, contrôle qualité, maintenance\",\n \"prompt\": \"Planifier la production hebdo via MRP et vérifier la disponibilité des matières\",\n \"agentTask\": \"MRP hebdo : 34 OF, vérification de 280 composants et capacité de 5 centres\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"MRP Planner — ELO 1 900\",\n \"metrics\": [\n {\n \"label\": \"OF actifs\",\n \"value\": \"34\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"TRG (OEE)\",\n \"value\": \"87 %\",\n \"change\": \"+3 pp\",\n \"up\": true\n },\n {\n \"label\": \"Qualité\",\n \"value\": \"99,4 %\",\n \"change\": \"+0,2 pp\",\n \"up\": true\n },\n {\n \"label\": \"Setup moyen\",\n \"value\": \"12 min\",\n \"change\": \"-4 min\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"OF #1247 — Produit fini A\",\n \"value\": \"500 unités · BOM 12 composants\",\n \"status\": \"En production\"\n },\n {\n \"name\": \"Inspection qualité — Lot #892\",\n \"value\": \"99,4 % validés · 3 écarts\",\n \"status\": \"Approuvé\"\n },\n {\n \"name\": \"Maintenance préventive — Tour CNC\",\n \"value\": \"Prévue vendredi\",\n \"status\": \"Planifié\"\n },\n {\n \"name\": \"MRP — Rupture matière\",\n \"value\": \"Composant Y · délai 5 jours\",\n \"status\": \"Alerte\"\n }\n ],\n \"workflowSteps\": [\n \"Cron MRP hebdomadaire déclenché…\",\n \"Récupération de la demande S&OP…\",\n \"Éclatement de la nomenclature (280 composants)…\",\n \"Vérification stock et capacité en parallèle…\",\n \"Libération de 34 ordres de fabrication…\",\n \"Exécution des points contrôle qualité…\",\n \"Publication du tableau de bord production…\"\n ]\n },\n \"ecommerce\": {\n \"title\": \"E-commerce\",\n \"description\": \"Catalogue, checkout, portail client, intégration marketplace\",\n \"prompt\": \"Synchroniser le catalogue avec les marketplaces et traiter 45 commandes\",\n \"agentTask\": \"Synchronisation de 1 200 SKU avec les marketplaces, prix et stock en temps réel\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Storefront Agent — ELO 1 850\",\n \"metrics\": [\n {\n \"label\": \"Commandes/jour\",\n \"value\": \"127\",\n \"change\": \"+32\",\n \"up\": true\n },\n {\n \"label\": \"GMV mensuel\",\n \"value\": \"87 K €\",\n \"change\": \"+18 %\",\n \"up\": true\n },\n {\n \"label\": \"Panier abandonné\",\n \"value\": \"24 %\",\n \"change\": \"-6 pp\",\n \"up\": true\n },\n {\n \"label\": \"NPS\",\n \"value\": \"72\",\n \"change\": \"+8\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Commande #E-4821 — Cdiscount\",\n \"value\": \"185 € · 3 articles\",\n \"status\": \"Envoyé\"\n },\n {\n \"name\": \"Sync catalogue — Cdiscount\",\n \"value\": \"1 200 SKU · 45 mis à jour\",\n \"status\": \"Synchronisé\"\n },\n {\n \"name\": \"Panier récupéré — email #247\",\n \"value\": \"70 € · converti\",\n \"status\": \"Récupéré\"\n },\n {\n \"name\": \"Portail client — Nouveau compte\",\n \"value\": \"Delta SARL\",\n \"status\": \"Activé\"\n }\n ],\n \"workflowSteps\": [\n \"Brief campagne reçu…\",\n \"Stratégiste décompose les objectifs…\",\n \"Design, copy et audience en parallèle…\",\n \"Assemblage du package final…\",\n \"Planification de la fenêtre d'envoi…\",\n \"Envoi via le fournisseur email…\",\n \"Mesure de la portée et engagement…\"\n ]\n },\n \"logistics\": {\n \"title\": \"Logistique\",\n \"description\": \"Flotte, intervention terrain, ordres de service, routage, stock véhicule\",\n \"prompt\": \"Optimiser les tournées pour 28 livraisons dans la métropole\",\n \"agentTask\": \"Routage : 28 livraisons, 4 véhicules, minimisation des km et respect des créneaux\",\n \"agentLeading\": \"à la tête de l'équipe\",\n \"agentProcessing\": \"Traitement\",\n \"agentName\": \"Route AI — ELO 1 900\",\n \"metrics\": [\n {\n \"label\": \"Livraisons/jour\",\n \"value\": \"89\",\n \"change\": \"+15\",\n \"up\": true\n },\n {\n \"label\": \"On-time\",\n \"value\": \"94 %\",\n \"change\": \"+3 pp\",\n \"up\": true\n },\n {\n \"label\": \"Km parcourus\",\n \"value\": \"2,4 K\",\n \"change\": \"-12 %\",\n \"up\": true\n },\n {\n \"label\": \"Coût/livraison\",\n \"value\": \"4,10 €\",\n \"change\": \"-0,90 €\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Tournée #R-47 — Paris est\",\n \"value\": \"8 arrêts · 42 km · 3 h\",\n \"status\": \"En route\"\n },\n {\n \"name\": \"OS #1284 — Maintenance préventive\",\n \"value\": \"Véhicule plaque AB-482-IDF\",\n \"status\": \"Planifié\"\n },\n {\n \"name\": \"Stock fourgon — Réapprovisionnement\",\n \"value\": \"45 articles · Tech. Julien\",\n \"status\": \"Chargement\"\n },\n {\n \"name\": \"Livraison retardée — Commande #4815\",\n \"value\": \"Client averti par SMS\",\n \"status\": \"Notifié\"\n }\n ],\n \"workflowSteps\": [\n \"28 commandes en file…\",\n \"Consultation trafic, flotte et créneaux en parallèle…\",\n \"Optimiseur construit les tournées…\",\n \"Envoi des véhicules…\",\n \"Notification des clients par SMS…\",\n \"Publication du tableau de tracking…\"\n ]\n }\n },\n \"dashboard\": {\n \"live\": \"En direct\",\n \"team\": \"Équipe IA\",\n \"agentsLabel\": \"agents\",\n \"completed\": \"terminé\",\n \"lead\": \"Chef\",\n \"supporting\": \"Co-pilote\",\n \"supportingDesc\": \"agents de support\",\n \"time\": \"Temps\",\n \"cost\": \"Coût\",\n \"agentsCount\": \"Agents\",\n \"embed\": \"Intégrer\",\n \"pdf\": \"PDF\",\n \"nextUpdate\": \"Prochaine : demain 6h\",\n \"dashboardSuffix\": \"Tableau de bord\"\n }\n}","{\n \"badge\": \"Chiedi → Orchestra → Consegna\",\n \"title\": \"Ogni reparto,\",\n \"titleAccent\": \"un agente IA specializzato\",\n \"subtitle\": \"Scrivi una richiesta. Il canvas Astrlabe orchestra agenti e datasource. La dashboard ERP consegna il risultato. Tutto in un unico flusso.\",\n \"conversation\": \"Conversazione — {persona} · {department}\",\n \"composerHint\": \"Messaggio a Kori AI…\",\n \"composerEnter\": \"⏎ invia\",\n \"assistantResponse\": \"Capito. Attiverò {count} agenti specializzati e orchestrerò il flusso su Astrlabe.\",\n \"stageAsk\": \"Chiedi\",\n \"stageOrchestrate\": \"Orchestra\",\n \"stageDeliver\": \"Consegna\",\n \"footerInput\": \"L'utente invia una richiesta all'assistente…\",\n \"footerWorkflow\": \"Astrlabe orchestra agenti e datasource…\",\n \"footerDashboard\": \"Fatto — dashboard ERP aggiornata.\",\n \"workflowStep\": \"Passo {current} di {total}\",\n \"departments\": {\n \"vendas\": {\n \"title\": \"Vendite\",\n \"description\": \"Pipeline, CRM, preventivi, obiettivi — Beatrice guida il ciclo commerciale\",\n \"prompt\": \"Qualificare il lead XPTO e generare proposta con sconto progressivo\",\n \"agentTask\": \"Qualifica di 12 lead, generazione proposte con listino e sconto progressivo\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Beatrice — ELO 2.050\",\n \"metrics\": [\n {\n \"label\": \"Ricavo mensile\",\n \"value\": \"€ 175.K\",\n \"change\": \"+12%\",\n \"up\": true\n },\n {\n \"label\": \"Pipeline\",\n \"value\": \"€ 380.K\",\n \"change\": \"+28%\",\n \"up\": true\n },\n {\n \"label\": \"Tasso conversione\",\n \"value\": \"34%\",\n \"change\": \"+5pp\",\n \"up\": true\n },\n {\n \"label\": \"Ticket medio\",\n \"value\": \"€ 660\",\n \"change\": \"+8%\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ordine #4821 — Acme Industriale\",\n \"value\": \"€ 5.060\",\n \"status\": \"Approvato\"\n },\n {\n \"name\": \"Preventivo CPQ #892 — Northwind Retail\",\n \"value\": \"€ 3.760 (-8%)\",\n \"status\": \"In sospeso\"\n },\n {\n \"name\": \"Opportunità — Contoso Ingrosso\",\n \"value\": \"€ 8.700 · 70% probabilità\",\n \"status\": \"Negoziazione\"\n },\n {\n \"name\": \"WhatsApp — Follow-up Delta\",\n \"value\": \"Messaggio recapitato\",\n \"status\": \"Inviato\"\n }\n ],\n \"workflowSteps\": [\n \"Lead arrivato — XPTO SRL…\",\n \"CRM arricchisce il lead…\",\n \"Beatrice valuta il fit commerciale…\",\n \"Routing per score (85/100 → qualificare)…\",\n \"Qualifica come SQL, apertura opportunità…\",\n \"Bozza proposta da template CPQ…\",\n \"Beatrice guida la negoziazione…\",\n \"Deal chiuso — ricavi registrati…\"\n ]\n },\n \"fiscal\": {\n \"title\": \"Fiscale\",\n \"description\": \"Fatture, IVA, audit fiscali — Carlo padroneggia la compliance\",\n \"prompt\": \"Emettere fattura per vendita intracomunitaria e calcolare IVA\",\n \"agentTask\": \"Calcolo IVA, generazione fattura e invio alle autorità fiscali\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Carlo — ELO 2.380\",\n \"metrics\": [\n {\n \"label\": \"Fatture emesse\",\n \"value\": \"1.284\",\n \"change\": \"+180\",\n \"up\": true\n },\n {\n \"label\": \"Validazione Agenzia\",\n \"value\": \"99,8%\",\n \"change\": \"+0,1pp\",\n \"up\": true\n },\n {\n \"label\": \"Tempo emissione\",\n \"value\": \"2,3s\",\n \"change\": \"-0,8s\",\n \"up\": true\n },\n {\n \"label\": \"IVA incassata\",\n \"value\": \"€ 124.K\",\n \"change\": \"+5%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Fattura #9821 — intracomunitaria\",\n \"value\": \"€ 1.850 · IVA € 333\",\n \"status\": \"Autorizzata\"\n },\n {\n \"name\": \"Fattura #9820 — Respinta\",\n \"value\": \"codice IVA non valido\",\n \"status\": \"Respinta\"\n },\n {\n \"name\": \"F24 — Marzo 2026\",\n \"value\": \"2.847 voci\",\n \"status\": \"Generato\"\n },\n {\n \"name\": \"LIPE — Periodo 02\",\n \"value\": \"€ 9.380 di IVA\",\n \"status\": \"Trasmessa\"\n }\n ],\n \"workflowSteps\": [\n \"Avvio chiusura trimestrale…\",\n \"Recupero transazioni Q4…\",\n \"Calcolo IVA e ritenute in parallelo…\",\n \"Carlo consolida la liquidazione fiscale…\",\n \"Verifica regole di compliance…\",\n \"Pubblicazione report fiscale…\"\n ]\n },\n \"financeiro\": {\n \"title\": \"Finanza\",\n \"description\": \"Flusso di cassa, conto economico, riconciliazione bancaria — Anna gestisce\",\n \"prompt\": \"Riconciliare estratto conto e generare conto economico con analisi trend\",\n \"agentTask\": \"Riconciliazione automatica di 847 movimenti bancari, classificazione per piano dei conti\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Anna — ELO 2.150\",\n \"metrics\": [\n {\n \"label\": \"Fatturato\",\n \"value\": \"€ 495.K\",\n \"change\": \"+8%\",\n \"up\": true\n },\n {\n \"label\": \"Margine EBITDA\",\n \"value\": \"18%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Crediti clienti\",\n \"value\": \"€ 78.K\",\n \"change\": \"-15%\",\n \"up\": true\n },\n {\n \"label\": \"Insolvenze\",\n \"value\": \"2,1%\",\n \"change\": \"-0,8pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Intesa Sanpaolo — Riconciliazione marzo\",\n \"value\": \"847 movimenti · 98% auto\",\n \"status\": \"Completata\"\n },\n {\n \"name\": \"Conto economico Q1/2026\",\n \"value\": \"Ricavi € 495.K · Utile € 89.K\",\n \"status\": \"Generato\"\n },\n {\n \"name\": \"Fattura scaduta — Cliente Beta\",\n \"value\": \"€ 1.730 · 15 giorni\",\n \"status\": \"Riscossione\"\n },\n {\n \"name\": \"Cash flow — Proiezione aprile\",\n \"value\": \"Saldo positivo € 24.800\",\n \"status\": \"Previsto\"\n }\n ],\n \"workflowSteps\": [\n \"Avvio chiusura mensile…\",\n \"Recupero estratto Intesa Sanpaolo…\",\n \"Anna classifica i movimenti per piano dei conti…\",\n \"Consolidamento bilancio…\",\n \"Verifica regole contabili…\",\n \"Pubblicazione dashboard finanza…\"\n ]\n },\n \"estoque\": {\n \"title\": \"Magazzino\",\n \"description\": \"Analisi ABC, punto di riordino, inventario rotativo — Paolo monitora tutto\",\n \"prompt\": \"Eseguire inventario rotativo classe A e generare ordini di acquisto auto\",\n \"agentTask\": \"Inventario rotativo: conteggio 180 SKU classe A, rettifica differenze\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Paolo — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"SKU attivi\",\n \"value\": \"1.847\",\n \"change\": \"+42\",\n \"up\": true\n },\n {\n \"label\": \"Rotazione\",\n \"value\": \"8,2x\",\n \"change\": \"+1,1x\",\n \"up\": true\n },\n {\n \"label\": \"Rotture stock\",\n \"value\": \"3\",\n \"change\": \"-8\",\n \"up\": true\n },\n {\n \"label\": \"Accuratezza\",\n \"value\": \"99,2%\",\n \"change\": \"+0,4pp\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"OdA #OA-291 — Fornitore Alpha\",\n \"value\": \"450 unità · € 2.900\",\n \"status\": \"Inviato\"\n },\n {\n \"name\": \"Trasferimento — Magazzino Lombardia → punto vendita Veneto\",\n \"value\": \"120 SKU · 2.400 unità\",\n \"status\": \"In transito\"\n },\n {\n \"name\": \"Allerta rottura — Componente X\",\n \"value\": \"45 unità (min: 100)\",\n \"status\": \"Critico\"\n },\n {\n \"name\": \"Inventario rotativo — Classe A\",\n \"value\": \"180 SKU · 99,2% accuratezza\",\n \"status\": \"Completato\"\n }\n ],\n \"workflowSteps\": [\n \"Cron giornaliero 06:00 avviato…\",\n \"Lettura livelli di stock (1.847 SKU)…\",\n \"Paolo prevede domanda con stagionalità…\",\n \"Filtraggio SKU sotto il punto di riordino…\",\n \"Iterazione 12 SKU segnalati…\",\n \"Selezione fornitore per SKU…\",\n \"Emissione ordini di acquisto…\",\n \"Pubblicazione report di riordino…\"\n ]\n },\n \"rh\": {\n \"title\": \"Personale\",\n \"description\": \"Buste paga, ferie, contratti, recruiting — Laura automatizza HR\",\n \"prompt\": \"Elaborare buste paga di marzo e generare adempimenti previdenziali\",\n \"agentTask\": \"Buste paga marzo: 142 buste, contributi e ritenute, generazione UniEMens\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Laura — ELO 1.920\",\n \"metrics\": [\n {\n \"label\": \"Organico\",\n \"value\": \"142\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"Turnover\",\n \"value\": \"3,2%\",\n \"change\": \"-1,5pp\",\n \"up\": true\n },\n {\n \"label\": \"UniEMens\",\n \"value\": \"100%\",\n \"change\": \"in regola\",\n \"up\": true\n },\n {\n \"label\": \"Buste paga mensili\",\n \"value\": \"€ 185.K\",\n \"change\": \"+4%\",\n \"up\": false\n }\n ],\n \"items\": [\n {\n \"name\": \"Buste paga marzo — 142 dipendenti\",\n \"value\": \"€ 185.K lordo · € 56.K contributi\",\n \"status\": \"Elaborata\"\n },\n {\n \"name\": \"UniEMens — Retribuzione\",\n \"value\": \"142 eventi trasmessi\",\n \"status\": \"Inviato\"\n },\n {\n \"name\": \"Ferie — Marco Russo\",\n \"value\": \"30 giorni · € 1.620\",\n \"status\": \"Approvato\"\n },\n {\n \"name\": \"Posizione aperta — Dev Senior\",\n \"value\": \"47 candidati · 5 selezionati\",\n \"status\": \"Selezione\"\n }\n ],\n \"workflowSteps\": [\n \"Mese chiuso — avvio buste paga…\",\n \"Recupero registrazioni presenze…\",\n \"Calcolo INPS, IRPEF e TFR in parallelo…\",\n \"Laura aggrega le buste…\",\n \"Generazione UniEMens…\",\n \"Trasmissione INPS…\",\n \"Pubblicazione dashboard buste paga…\"\n ]\n },\n \"compliance\": {\n \"title\": \"GDPR\",\n \"description\": \"Audit GDPR, consensi, anonimizzazione, valutazioni d'impatto\",\n \"prompt\": \"Audit dei dati personali in tutte le tabelle e generare DPIA aggiornata\",\n \"agentTask\": \"Audit completo: scansione di 14 tabelle, mappatura PII, verifica basi giuridiche\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Roberta — ELO 2.200\",\n \"metrics\": [\n {\n \"label\": \"Conformità\",\n \"value\": \"98%\",\n \"change\": \"+2pp\",\n \"up\": true\n },\n {\n \"label\": \"Consensi\",\n \"value\": \"12,4K\",\n \"change\": \"+1,2K\",\n \"up\": true\n },\n {\n \"label\": \"Incidenti\",\n \"value\": \"0\",\n \"change\": \"0\",\n \"up\": true\n },\n {\n \"label\": \"Tempo DSAR\",\n \"value\": \"4h\",\n \"change\": \"-12h\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Audit trimestrale — Q1/2026\",\n \"value\": \"14 tabelle · 847.000 record\",\n \"status\": \"Completata\"\n },\n {\n \"name\": \"DSAR — Richiesta cancellazione #421\",\n \"value\": \"Cliente Andrea Conti\",\n \"status\": \"Anonimizzato\"\n },\n {\n \"name\": \"DPIA aggiornata\",\n \"value\": \"32 trattamenti mappati\",\n \"status\": \"Generato\"\n },\n {\n \"name\": \"Consenso scaduto — Lotto\",\n \"value\": \"45 record · rinnovo\",\n \"status\": \"In sospeso\"\n }\n ],\n \"workflowSteps\": [\n \"Sweep giornaliero avviato…\",\n \"Recupero log di audit…\",\n \"Roberta scansiona accessi PII…\",\n \"Branching sui risultati…\",\n \"Agente di remediation applica correzioni…\",\n \"Notifica al DPO…\",\n \"Archiviazione report di conformità…\"\n ]\n },\n \"atendimento\": {\n \"title\": \"Supporto\",\n \"description\": \"Ticket, SLA, FAQ intelligente, CSAT — Camilla gestisce i clienti\",\n \"prompt\": \"Rispondere al ticket #847 su ritardo consegna e verificare stato logistico\",\n \"agentTask\": \"Ticket #847: verifica tracking, controllo SLA e preparazione risposta personalizzata\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Camilla — ELO 1.780\",\n \"metrics\": [\n {\n \"label\": \"Ticket aperti\",\n \"value\": \"23\",\n \"change\": \"-12\",\n \"up\": true\n },\n {\n \"label\": \"SLA rispettato\",\n \"value\": \"96%\",\n \"change\": \"+4pp\",\n \"up\": true\n },\n {\n \"label\": \"Tempo risposta\",\n \"value\": \"2min\",\n \"change\": \"-8min\",\n \"up\": true\n },\n {\n \"label\": \"CSAT\",\n \"value\": \"4,8/5\",\n \"change\": \"+0,3\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ticket #847 — Ritardo consegna\",\n \"value\": \"Giulia Romano · SLA: 2h rimanenti\",\n \"status\": \"In corso\"\n },\n {\n \"name\": \"Ticket #845 — Cambio prodotto\",\n \"value\": \"Autorizzazione RMA emessa\",\n \"status\": \"Risolto\"\n },\n {\n \"name\": \"FAQ aggiornata — 12 articoli\",\n \"value\": \"Base di conoscenza\",\n \"status\": \"Pubblicato\"\n },\n {\n \"name\": \"CSAT settimanale\",\n \"value\": \"4,8/5 · 94% soddisfazione\",\n \"status\": \"Calcolato\"\n }\n ],\n \"workflowSteps\": [\n \"Ticket #847 ricevuto…\",\n \"Recupero storico, ordine e FAQ in parallelo…\",\n \"Classificazione intent e priorità…\",\n \"Valutazione SLA e urgenza…\",\n \"Camilla redige risposta personalizzata…\",\n \"Revisione umana opzionale…\",\n \"Invio risposta al cliente…\"\n ]\n },\n \"manufacturing\": {\n \"title\": \"Produzione\",\n \"description\": \"Ordini di produzione, distinta base, MRP, controllo qualità, manutenzione\",\n \"prompt\": \"Pianificare produzione settimanale con MRP e verificare materie prime\",\n \"agentTask\": \"MRP settimanale: 34 ordini, verifica 280 componenti distinta e capacità di 5 centri\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"MRP Planner — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"OdP attivi\",\n \"value\": \"34\",\n \"change\": \"+8\",\n \"up\": true\n },\n {\n \"label\": \"OEE\",\n \"value\": \"87%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Qualità\",\n \"value\": \"99,4%\",\n \"change\": \"+0,2pp\",\n \"up\": true\n },\n {\n \"label\": \"Setup medio\",\n \"value\": \"12min\",\n \"change\": \"-4min\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"OdP #1247 — Prodotto finito A\",\n \"value\": \"500 unità · BOM 12 componenti\",\n \"status\": \"In produzione\"\n },\n {\n \"name\": \"Ispezione qualità — Lotto #892\",\n \"value\": \"99,4% approvazione · 3 deviazioni\",\n \"status\": \"Approvato\"\n },\n {\n \"name\": \"Manutenzione preventiva — Tornio CNC\",\n \"value\": \"Pianificata per venerdì\",\n \"status\": \"Pianificato\"\n },\n {\n \"name\": \"MRP — Mancanza materia prima\",\n \"value\": \"Componente Y · lead time 5 giorni\",\n \"status\": \"Allerta\"\n }\n ],\n \"workflowSteps\": [\n \"Cron MRP settimanale avviato…\",\n \"Recupero domanda S&OP…\",\n \"Esplosione distinta base (280 componenti)…\",\n \"Verifica stock e capacità in parallelo…\",\n \"Rilascio 34 ordini di produzione…\",\n \"Esecuzione checkpoint qualità…\",\n \"Pubblicazione dashboard produzione…\"\n ]\n },\n \"ecommerce\": {\n \"title\": \"E-commerce\",\n \"description\": \"Catalogo, checkout, portale cliente, integrazione marketplace\",\n \"prompt\": \"Sincronizzare catalogo con marketplace e processare 45 ordini in attesa\",\n \"agentTask\": \"Sincronizzazione di 1.200 SKU con marketplace, prezzi e stock in tempo reale\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Storefront Agent — ELO 1.850\",\n \"metrics\": [\n {\n \"label\": \"Ordini/giorno\",\n \"value\": \"127\",\n \"change\": \"+32\",\n \"up\": true\n },\n {\n \"label\": \"GMV mensile\",\n \"value\": \"€ 87.K\",\n \"change\": \"+18%\",\n \"up\": true\n },\n {\n \"label\": \"Carrello abbandonato\",\n \"value\": \"24%\",\n \"change\": \"-6pp\",\n \"up\": true\n },\n {\n \"label\": \"NPS\",\n \"value\": \"72\",\n \"change\": \"+8\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Ordine #E-4821 — Amazon IT\",\n \"value\": \"€ 185 · 3 articoli\",\n \"status\": \"Inviato\"\n },\n {\n \"name\": \"Sync catalogo — Amazon IT\",\n \"value\": \"1.200 SKU · 45 aggiornati\",\n \"status\": \"Sincronizzato\"\n },\n {\n \"name\": \"Carrello recuperato — email #247\",\n \"value\": \"€ 70 · convertito\",\n \"status\": \"Recuperato\"\n },\n {\n \"name\": \"Portale cliente — Nuovo account\",\n \"value\": \"Delta SRL\",\n \"status\": \"Attivato\"\n }\n ],\n \"workflowSteps\": [\n \"Brief campagna ricevuto…\",\n \"Stratega scompone gli obiettivi…\",\n \"Design, copy e audience in parallelo…\",\n \"Assemblaggio pacchetto finale…\",\n \"Pianificazione finestra di invio…\",\n \"Invio tramite provider email…\",\n \"Misurazione reach ed engagement…\"\n ]\n },\n \"logistics\": {\n \"title\": \"Logistica\",\n \"description\": \"Flotta, intervento sul campo, ordini di servizio, routing, scorte furgone\",\n \"prompt\": \"Ottimizzare rotte di consegna per 28 ordini nell'area metropolitana\",\n \"agentTask\": \"Routing: 28 consegne, 4 veicoli, minimizzando km e rispettando finestre di consegna\",\n \"agentLeading\": \"guida il team\",\n \"agentProcessing\": \"Elaborazione\",\n \"agentName\": \"Route AI — ELO 1.900\",\n \"metrics\": [\n {\n \"label\": \"Consegne/giorno\",\n \"value\": \"89\",\n \"change\": \"+15\",\n \"up\": true\n },\n {\n \"label\": \"Puntualità\",\n \"value\": \"94%\",\n \"change\": \"+3pp\",\n \"up\": true\n },\n {\n \"label\": \"Km percorsi\",\n \"value\": \"2,4K\",\n \"change\": \"-12%\",\n \"up\": true\n },\n {\n \"label\": \"Costo/consegna\",\n \"value\": \"€ 4,10\",\n \"change\": \"-€ 0,90\",\n \"up\": true\n }\n ],\n \"items\": [\n {\n \"name\": \"Rotta #R-47 — Milano Est\",\n \"value\": \"8 fermate · 42km · 3h\",\n \"status\": \"In rotta\"\n },\n {\n \"name\": \"OdS #1284 — Manutenzione preventiva\",\n \"value\": \"Veicolo targa MI-482EA\",\n \"status\": \"Pianificato\"\n },\n {\n \"name\": \"Furgone — Riassortimento\",\n \"value\": \"45 articoli · Tecn. Marco\",\n \"status\": \"In carico\"\n },\n {\n \"name\": \"Consegna in ritardo — Ordine #4815\",\n \"value\": \"Cliente avvisato via WhatsApp\",\n \"status\": \"Notificato\"\n }\n ],\n \"workflowSteps\": [\n \"28 ordini in coda…\",\n \"Interrogazione traffico, flotta e finestre in parallelo…\",\n \"Ottimizzatore costruisce le rotte…\",\n \"Invio veicoli…\",\n \"Notifica clienti via WhatsApp…\",\n \"Pubblicazione dashboard di tracking…\"\n ]\n }\n },\n \"dashboard\": {\n \"live\": \"Live\",\n \"team\": \"Team IA\",\n \"agentsLabel\": \"agenti\",\n \"completed\": \"completato\",\n \"lead\": \"Lead\",\n \"supporting\": \"Co-pilota\",\n \"supportingDesc\": \"agenti di supporto\",\n \"time\": \"Tempo\",\n \"cost\": \"Costo\",\n \"agentsCount\": \"Agenti\",\n \"embed\": \"Incorpora\",\n \"pdf\": \"PDF\",\n \"nextUpdate\": \"Prossimo: domani 6:00\",\n \"dashboardSuffix\": \"Dashboard\"\n }\n}","import en from './messages/en.json'\nimport ptBR from './messages/pt-BR.json'\nimport de from './messages/de.json'\nimport es from './messages/es.json'\nimport fr from './messages/fr.json'\nimport it from './messages/it.json'\n\n/**\n * Kori demo i18n strings, bundled with the component so consumers\n * (kori-erp landing, pitch-deck product slide, anything else) don't have\n * to ship the same `landing.assistant.*` namespace in their own message\n * catalogue.\n *\n * The shape mirrors what the kori-erp messages used to expose under\n * `landing.assistant`: `badge`, `title`, `titleAccent`, `subtitle`,\n * dialogue chrome, plus `departments.{id}.*` and `dashboard.*`.\n */\nexport const KORI_DEMO_MESSAGES: Record<string, Record<string, unknown>> = {\n en,\n 'pt-BR': ptBR,\n de,\n es,\n fr,\n it,\n}\n\nexport type KoriDemoLocale = keyof typeof KORI_DEMO_MESSAGES\n\n/** Resolve a localised message bundle, falling back to en when missing. */\nexport function getKoriDemoMessages(locale: string): Record<string, unknown> {\n return KORI_DEMO_MESSAGES[locale] ?? KORI_DEMO_MESSAGES.en!\n}\n\n/**\n * Tiny dotted-path lookup. We avoid pulling in a full i18n runtime here\n * since the demo strings are static — just split on `.` and walk the\n * tree, returning the key itself when nothing matches (same behaviour as\n * useTranslations in fallback mode).\n *\n * `.raw` returns the raw value (object, array, primitive) so the\n * department-data builder can pull metric/item lists.\n */\nexport interface KoriDemoTranslator {\n (key: string, params?: Record<string, string | number>): string\n raw: (key: string) => unknown\n}\n\nfunction resolve(messages: Record<string, unknown>, key: string): unknown {\n const parts = key.split('.')\n let current: unknown = messages\n for (const part of parts) {\n if (current && typeof current === 'object' && part in (current as Record<string, unknown>)) {\n current = (current as Record<string, unknown>)[part]\n } else {\n return undefined\n }\n }\n return current\n}\n\nfunction format(template: string, params?: Record<string, string | number>): string {\n if (!params) return template\n return template.replace(/\\{(\\w+)\\}/g, (_, name) => String(params[name] ?? `{${name}}`))\n}\n\n/**\n * Build a translator scoped to the optional `prefix` path. Without a\n * prefix it walks from the root.\n */\nexport function createKoriDemoTranslator(locale: string, prefix?: string): KoriDemoTranslator {\n const root = getKoriDemoMessages(locale)\n const base = prefix ? (resolve(root, prefix) as Record<string, unknown> | undefined) ?? {} : root\n const t = ((key: string, params?: Record<string, string | number>) => {\n const value = resolve(base, key)\n if (typeof value === 'string') return format(value, params)\n return key\n }) as KoriDemoTranslator\n t.raw = (key: string) => resolve(base, key)\n return t\n}\n","// =============================================================================\n// @datatechsolutions/ui/platform/kori-demo\n// =============================================================================\n// The Kori \"AI department assistant\" demo, lifted from kori-erp/components/\n// landing/ so both the kori marketing landing page and the pitch-deck product\n// slide can mount the *same* component without duplicating the wiring or\n// re-shipping the i18n strings.\n//\n// The demo composes the generic `<DepartmentAssistantDemo>` from `@ui` with\n// kori-themed defaults: workflows pulled from the workflow library, dicebear\n// avatars for each persona, the bespoke kori dashboard, and a bundled\n// translator (en / pt-BR / es / fr / de / it) so consumers never need to\n// supply a `t()` function for the demo content itself.\n// =============================================================================\n\nimport { useMemo } from 'react'\nimport { SparklesIcon } from '@heroicons/react/24/outline'\nimport {\n DepartmentAssistantDemo,\n type DepartmentAssistantFlow,\n type DepartmentAssistantLabels,\n type DepartmentWorkflow,\n koriAssistantTheme,\n customerAnalyticsWorkflow,\n financialWorkflow,\n inventoryWorkflow,\n lgpdWorkflow,\n logisticsWorkflow,\n manufacturingWorkflow,\n marketingWorkflow,\n payrollWorkflow,\n salesWorkflow,\n supportWorkflow,\n} from '@ui/index'\nimport { useLocale } from '@ui/lib/i18n-context'\nimport { getKoriDepartments } from './department-data'\nimport { KoriDepartmentDashboard } from './department-dashboard'\nimport { KORI_AGENT_AVATARS, KORI_FLOW_NODE_AVATARS } from './agent-avatars'\nimport { createKoriDemoTranslator, type KoriDemoTranslator } from './messages'\n\n// All accents stay within the kori amber/orange/yellow family for brand consistency.\nconst ACCENT_BY_ID: Record<string, string> = {\n vendas: 'from-amber-500 to-orange-500',\n fiscal: 'from-orange-500 to-amber-600',\n financeiro: 'from-amber-400 to-yellow-500',\n estoque: 'from-orange-500 to-amber-500',\n rh: 'from-amber-600 to-orange-600',\n compliance: 'from-rose-500 to-orange-500',\n atendimento: 'from-yellow-500 to-amber-500',\n manufacturing: 'from-orange-600 to-red-500',\n ecommerce: 'from-amber-500 to-yellow-500',\n logistics: 'from-orange-500 to-amber-600',\n}\n\nconst WORKFLOW_BY_ID: Record<string, DepartmentWorkflow> = {\n vendas: salesWorkflow,\n fiscal: financialWorkflow,\n financeiro: financialWorkflow,\n estoque: inventoryWorkflow,\n rh: payrollWorkflow,\n compliance: lgpdWorkflow,\n atendimento: supportWorkflow,\n manufacturing: manufacturingWorkflow,\n ecommerce: marketingWorkflow,\n logistics: logisticsWorkflow,\n}\n\nfunction buildFlows(\n t: KoriDemoTranslator,\n tDashboard: (key: string) => string,\n): DepartmentAssistantFlow[] {\n const departments = getKoriDepartments(t)\n return departments.map((dept) => {\n const personaName = dept.agents[0] ?? dept.title\n const baseWorkflow = WORKFLOW_BY_ID[dept.id] ?? customerAnalyticsWorkflow\n const localizedWorkflow = dept.workflowSteps && dept.workflowSteps.length > 0\n ? {\n ...baseWorkflow,\n steps: baseWorkflow.steps.map((step, i) => ({\n ...step,\n label: dept.workflowSteps![i] ?? step.label,\n })),\n }\n : baseWorkflow\n return {\n id: dept.id,\n name: dept.title,\n icon: dept.icon,\n accent: ACCENT_BY_ID[dept.id] ?? 'from-amber-500 to-orange-500',\n prompt: dept.prompt,\n agents: dept.agents,\n agentAvatars: KORI_AGENT_AVATARS,\n nodeAvatars: KORI_FLOW_NODE_AVATARS[dept.id],\n assistantAvatar: KORI_AGENT_AVATARS[personaName],\n assistantName: personaName,\n workflow: localizedWorkflow,\n dashboard: (\n <KoriDepartmentDashboard\n dept={dept}\n agents={dept.agents}\n agentAvatars={KORI_AGENT_AVATARS}\n tDashboard={tDashboard}\n />\n ),\n }\n })\n}\n\nexport interface KoriAssistantDemoProps {\n /** Locale override. Defaults to whatever the surrounding `<I18nProvider>` exposes. */\n locale?: string\n /** Hide the section header (badge/title/subtitle) — useful in slide contexts. */\n hideHeader?: boolean\n}\n\n/**\n * Self-contained Kori department-assistant demo. No external i18n setup\n * required — strings ship with the component. Caller may pass `locale` to\n * force a specific bundle; otherwise we read it via `useLocale()`.\n */\nexport function KoriAssistantDemo({ locale, hideHeader }: KoriAssistantDemoProps = {}) {\n const detectedLocale = useLocale()\n const activeLocale = locale ?? detectedLocale\n const t = useMemo(() => createKoriDemoTranslator(activeLocale), [activeLocale])\n const tDashboard = useMemo(() => createKoriDemoTranslator(activeLocale, 'dashboard'), [activeLocale])\n\n const flows = useMemo(() => buildFlows(t, (k) => tDashboard(k)), [t, tDashboard])\n const labels = useMemo<DepartmentAssistantLabels>(\n () => ({\n conversation: (persona, department) => t('conversation', { persona, department }),\n composerHint: t('composerHint'),\n composerEnter: t('composerEnter'),\n personaTag: (persona) => persona.toUpperCase(),\n assistantResponse: (count) => t('assistantResponse', { count }),\n stageAsk: t('stageAsk'),\n stageOrchestrate: t('stageOrchestrate'),\n stageDeliver: t('stageDeliver'),\n footerInput: t('footerInput'),\n footerWorkflow: t('footerWorkflow'),\n footerDashboard: t('footerDashboard'),\n workflowStep: (current, total) => t('workflowStep', { current, total }),\n }),\n [t],\n )\n\n return (\n <section id=\"demo\" className=\"relative px-4 py-24 sm:px-6\">\n <div aria-hidden className=\"pointer-events-none absolute inset-0 overflow-hidden\">\n <div className=\"absolute left-1/2 top-1/2 h-[900px] w-[1400px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-amber-500/10 blur-[160px] dark:bg-amber-500/15\" />\n <div className=\"absolute left-[15%] top-[20%] h-[400px] w-[400px] rounded-full bg-orange-500/10 blur-[120px] dark:bg-orange-600/10\" />\n <div className=\"absolute right-[10%] bottom-[15%] h-[400px] w-[400px] rounded-full bg-yellow-400/10 blur-[120px] dark:bg-yellow-500/10\" />\n </div>\n\n <div className=\"relative mx-auto max-w-[1760px]\">\n {!hideHeader && (\n <div className=\"mx-auto mb-12 max-w-3xl text-center\">\n <div className=\"liquid-surface mb-4 inline-flex items-center gap-2 rounded-full px-4 py-1.5 text-sm font-medium text-amber-700 dark:text-amber-300\">\n <SparklesIcon className=\"h-4 w-4\" />\n {t('badge')}\n </div>\n <h2 className=\"text-4xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-5xl\">\n {t('title')}{' '}\n <span className=\"bg-gradient-to-r from-amber-500 via-orange-500 to-yellow-500 bg-clip-text text-transparent\">\n {t('titleAccent')}\n </span>\n </h2>\n <p className=\"mx-auto mt-4 max-w-2xl text-lg text-gray-600 dark:text-gray-400\">\n {t('subtitle')}\n </p>\n </div>\n )}\n\n <DepartmentAssistantDemo\n flows={flows}\n theme={koriAssistantTheme}\n brandName=\"Kori AI Assistant\"\n labels={labels}\n />\n </div>\n </section>\n )\n}\n\nexport { KORI_AGENT_AVATARS, KORI_FLOW_NODE_AVATARS } from './agent-avatars'\nexport { KORI_DEMO_MESSAGES, getKoriDemoMessages } from './messages'\n"]}
1
+ {"version":3,"sources":["../../src/platform/session-switcher.tsx","../../src/platform/dock-container.tsx","../../src/hooks/use-locale-switcher.ts","../../src/platform/preferences-controls.tsx","../../src/platform/windsock-mappers.ts","../../src/platform/admin-settings-sections.tsx","../../src/platform/ai-workflow-generate-modal.tsx","../../src/platform/workflow-template-modal.tsx"],"names":["jsxs","jsx","useCallback","SUPPORTED_LOCALES","useState","useEffect","useMemo","Fragment"],"mappings":"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","file":"index.mjs","sourcesContent":["import { Select, Button } from '@ui/index'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport type { SessionSwitcherProps } from '@datatechsolutions/shared-domain/common'\n\nexport function SessionSwitcher({\n organizations,\n users,\n organizationId,\n userEmail,\n onOrganizationChange,\n onUserChange,\n}: SessionSwitcherProps) {\n const tSession = useTranslations('platform.session')\n const tCommon = useTranslations('common')\n\n return (\n <div className=\"session-switcher\">\n <Select\n value={organizationId}\n aria-label={tSession('organization')}\n onChange={(event) => {\n onOrganizationChange(event.target.value)\n }}\n options={organizations}\n placeholder={tSession('organization')}\n />\n <Select\n value={userEmail}\n aria-label={tSession('user')}\n onChange={(event) => {\n onUserChange(event.target.value)\n }}\n options={users}\n placeholder={tSession('user')}\n />\n <Button outline onClick={() => globalThis.location.reload()}>\n {tCommon('refresh')}\n </Button>\n </div>\n )\n}\n","import { useMemo, useState, useCallback } from 'react'\nimport { useAuth, usePlatformPreferences } from '../_auth'\nimport type { AuthUser } from '../_auth'\nimport {\n AppNavigation,\n filterByPermission,\n GlassModal,\n type NavigationItem,\n} from '@ui/index'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport { usePathname, useRouter } from '@ui/lib/router-context'\n\nexport type PlatformDockContainerProps = {\n /** JWT-derived actor used for permission filtering. */\n actor: AuthUser | null\n /** App-specific navigation items (already translated). */\n navigationItems: NavigationItem[]\n /**\n * Pathname where the dock should be hidden (defaults to `/dashboard`).\n * The dashboard typically owns its own navigation chrome.\n */\n dashboardPath?: string\n /** Path to redirect to on sign-out (defaults to `/login`). */\n signOutPath?: string\n}\n\n/**\n * Floating dock + profile-modal trigger shared by every platform app.\n * Reads the active route from ui's router context and uses windsock for\n * preferences + sign-out, so the consumer only has to wire up navigation\n * items + an optional dashboard/sign-out path.\n */\nexport function PlatformDockContainer({\n actor,\n navigationItems,\n dashboardPath = '/dashboard',\n signOutPath = '/login',\n}: PlatformDockContainerProps) {\n const pathname = usePathname()\n const router = useRouter()\n const { logout } = useAuth()\n const tCommon = useTranslations('common')\n const {\n dockPosition,\n dockAutoHide,\n dockEnabled,\n } = usePlatformPreferences()\n const [profileOpen, setProfileOpen] = useState(false)\n\n const filteredItems = useMemo(\n () => filterByPermission(navigationItems, (actor as { permissions?: string[] } | null)?.permissions ?? []),\n [navigationItems, actor],\n )\n\n const handleNavigate = useCallback((href: string) => router.push(href), [router])\n const handleSignOut = useCallback(() => { void logout(signOutPath) }, [logout, signOutPath])\n\n if (pathname === dashboardPath) return null\n\n return (\n <>\n <AppNavigation\n items={filteredItems}\n pathname={pathname}\n dockEnabled={dockEnabled}\n dockPosition={dockPosition as 'left' | 'right' | 'bottom'}\n dockAutoHide={dockAutoHide}\n showLaunchpad={false}\n onNavigate={handleNavigate}\n onOpenProfile={() => setProfileOpen(true)}\n onSignOut={handleSignOut}\n labels={{\n home: tCommon('home'),\n profile: tCommon('profile'),\n signOut: tCommon('signOut'),\n }}\n />\n <GlassModal\n open={profileOpen}\n onClose={() => setProfileOpen(false)}\n title={tCommon('profile')}\n >\n <div />\n </GlassModal>\n </>\n )\n}\n","import { useCallback } from 'react'\nimport { useAuth as useWindsockAuth } from '../_auth'\nimport type { LocaleCode } from '@datatechsolutions/shared-domain/common'\nimport {\n applyClientLocale,\n LOCALE_TO_SHORT,\n SUPPORTED_LOCALES,\n} from '@datatechsolutions/shared-domain/i18n'\nimport { useLocale } from '@ui/lib/i18n-context'\n\n/**\n * Locale switcher hook — reads the current locale from the i18n context and\n * pushes the user's choice through windsock so the next session inherits it.\n *\n * Lifted from astrlabe; consumers (astrlabe, kori-erp) wrap their tree in\n * `<I18nProvider>` + windsock's `<AuthProvider>` and import this directly.\n */\nexport function useLocaleSwitcher() {\n const locale = useLocale() as LocaleCode\n const { client } = useWindsockAuth()\n\n const setLocale = useCallback(\n (newLocale: LocaleCode | string) => {\n const resolved = applyClientLocale(newLocale)\n client.updateLocale(resolved)\n },\n [client],\n )\n\n return {\n locale,\n shortCode: LOCALE_TO_SHORT[locale] || 'pt',\n setLocale,\n locales: SUPPORTED_LOCALES,\n }\n}\n","import { MoonIcon, SunIcon } from '@heroicons/react/24/outline'\nimport { Select, IconButton } from '@ui/index'\nimport { SUPPORTED_LOCALES, LANGUAGE_META } from '@datatechsolutions/shared-domain/i18n'\nimport { usePlatformPreferences } from '../_auth'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport { useLocaleSwitcher } from '@ui/hooks/use-locale-switcher'\n\nconst LOCALE_OPTIONS = SUPPORTED_LOCALES.map((code) => ({\n value: code,\n label: LANGUAGE_META[code].nativeName,\n}))\n\n/**\n * Locale + theme controls used inside the platform preferences drawer.\n * Reads the active locale from the i18n context and the theme/dock\n * preferences from windsock — both shared providers consuming apps must\n * mount above this component.\n */\nexport function PreferencesControls() {\n const { locale, setLocale } = useLocaleSwitcher()\n const { theme, setTheme } = usePlatformPreferences()\n const toggleTheme = () => setTheme(theme === 'dark' ? 'light' : 'dark')\n const t = useTranslations('platform.preferences')\n\n return (\n <div className=\"preferences-controls\">\n <Select\n value={locale}\n options={LOCALE_OPTIONS}\n onChange={(event) => setLocale(event.target.value)}\n />\n <IconButton\n label={t('theme')}\n icon={theme === 'dark' ? <SunIcon /> : <MoonIcon />}\n onClick={toggleTheme}\n variant=\"outline\"\n />\n </div>\n )\n}\n","import type {\n AdminUserSummary,\n AuthOrganization,\n} from '@datatechsolutions/shared-domain'\nimport type { ManagedUser, Organization, UserRole } from '@datatechsolutions/shared-domain/common'\n\n/** Maps a windsock AuthOrganization to the app-level Organization shape used by UI pages. */\nexport function mapAuthOrg(raw: AuthOrganization): Organization {\n return {\n id: raw.id,\n name: raw.displayName ?? raw.name,\n currency: 'BRL',\n country: 'BR',\n } as Organization\n}\n\n/**\n * Maps a windsock AdminUserSummary to the app-level ManagedUser shape.\n * Takes `normalizeRole` as a parameter so each consuming app can plug in\n * the role normalizer produced by its own `createPlatformRbac()` call —\n * we deliberately don't hardcode an app-specific role enum here.\n */\nexport function mapAdminUser(\n row: AdminUserSummary,\n normalizeRole: (input: unknown) => string,\n): ManagedUser {\n return {\n id: row.id,\n email: row.email,\n name: row.name ?? row.email,\n role: normalizeRole(row.role) as UserRole,\n active: row.status === 'active',\n }\n}\n\n/** Maps an app-level UserRole to a windsock AuthOrganizationRole. */\nexport const ORG_ROLE_MAP: Record<string, 'owner' | 'admin' | 'member' | 'viewer'> = {\n owner: 'owner',\n admin: 'admin',\n manager: 'admin',\n analyst: 'member',\n operator: 'member',\n viewer: 'viewer',\n finance: 'member',\n sales: 'member',\n support: 'member',\n member: 'member',\n}\n\nexport function mapRoleToOrgRole(role: string): 'owner' | 'admin' | 'member' | 'viewer' {\n return ORG_ROLE_MAP[role] ?? 'member'\n}\n","import { useEffect, useState } from 'react'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport { useNotifications } from '@ui/components/notifications'\nimport type { ManagedUser } from '@datatechsolutions/shared-domain/common'\nimport {\n listUsers,\n createUser as createUserApi,\n addOrganizationMember,\n} from './windsock-admin-client'\nimport { mapAdminUser, mapRoleToOrgRole } from './windsock-mappers'\nimport { UsersPageView } from './pages/users-page-view'\nimport { RolesPageView } from './pages/roles-page-view'\nimport { usePlatformState } from './platform-state-provider'\nimport type { PlatformRoleDefinition } from './rbac'\n\nexport type UsersSettingsSectionProps = {\n /**\n * Role normalizer produced by each app's `createPlatformRbac()` call.\n * Used to coerce JWT role strings into the app's canonical role enum.\n */\n normalizeRole: (input: unknown) => string\n}\n\nexport type RolesSettingsSectionProps = UsersSettingsSectionProps & {\n /** App-defined role definitions (from `createPlatformRbac`). */\n roleDefinitions: Record<string, PlatformRoleDefinition<string>>\n /** Display options for the role-assignment select. */\n roleOptions: Array<{ value: string; label: string }>\n}\n\nexport function UsersSettingsSection({ normalizeRole }: UsersSettingsSectionProps) {\n const t = useTranslations('platform.users')\n const { currentOrganizationId } = usePlatformState()\n const { error: notifyError, success: notifySuccess } = useNotifications()\n const [users, setUsers] = useState<ManagedUser[]>([])\n const [loading, setLoading] = useState(true)\n\n const reload = async () => {\n try {\n const result = await listUsers({ organizationId: currentOrganizationId })\n setUsers(result.items.map((row) => mapAdminUser(row, normalizeRole)))\n } catch (error) {\n notifyError((error as Error).message)\n } finally {\n setLoading(false)\n }\n }\n\n useEffect(() => {\n void reload()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentOrganizationId])\n\n return (\n <UsersPageView\n labels={{\n title: t('title'),\n subtitle: t('subtitle'),\n create: t('create'),\n list: t('list'),\n add: t('add'),\n statusActive: t('statusActive'),\n statusInactive: t('statusInactive'),\n name: t('name'),\n email: t('email'),\n role: t('role'),\n status: t('status'),\n save: t('save'),\n userNamePlaceholder: t('userNamePlaceholder'),\n userEmailPlaceholder: t('userEmailPlaceholder'),\n }}\n users={loading ? [] : users}\n onCreateUser={async ({ name, email, role }) => {\n try {\n await createUserApi({ name, email, role: role as never, organizationId: currentOrganizationId })\n notifySuccess(t('add'))\n await reload()\n } catch (error) {\n notifyError((error as Error).message)\n }\n }}\n onUpdateRole={() => {\n notifyError(t('reassignInRolesTab'))\n }}\n />\n )\n}\n\nexport function RolesSettingsSection({ roleDefinitions, roleOptions, normalizeRole }: RolesSettingsSectionProps) {\n const t = useTranslations('platform.roles')\n const { currentOrganizationId } = usePlatformState()\n const { error: notifyError, success: notifySuccess } = useNotifications()\n const [users, setUsers] = useState<ManagedUser[]>([])\n\n useEffect(() => {\n listUsers({ organizationId: currentOrganizationId })\n .then((result) => setUsers(result.items.map((row) => mapAdminUser(row, normalizeRole))))\n .catch((error: Error) => notifyError(error.message))\n }, [currentOrganizationId, notifyError, normalizeRole])\n\n return (\n <RolesPageView\n roleDefinitions={roleDefinitions}\n roleOptions={roleOptions}\n labels={{\n title: t('title'),\n subtitle: t('subtitle'),\n definitions: t('definitions'),\n assign: t('assign'),\n current: t('current'),\n permissionsEnabled: t('permissionsEnabled'),\n apply: t('apply'),\n role: t('role'),\n description: t('description'),\n user: t('user'),\n email: t('email'),\n userEmail: t('userEmail'),\n }}\n users={users}\n onAssignRole={async ({ email, role }) => {\n const target = users.find((user) => user.email.toLowerCase() === email.toLowerCase())\n if (!target) {\n notifyError(t('userNotFound'))\n return\n }\n try {\n await addOrganizationMember(currentOrganizationId, target.id, mapRoleToOrgRole(role))\n notifySuccess(t('apply'))\n } catch (error) {\n notifyError((error as Error).message)\n }\n }}\n />\n )\n}\n","import { useEffect, useState } from 'react'\nimport { GlassModal, Textarea } from '@ui/index'\nimport { useNotifications } from '@ui/components/notifications'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport type { Workflow } from '@ui/astrlabe/contracts'\nimport {\n aiGenerateWorkflow,\n createWorkflow,\n listModelProviderConnections,\n saveWorkflowDraft,\n type ModelProviderConnection,\n} from './workflow-api-client'\n\ninterface Props {\n open: boolean\n onClose: () => void\n onGenerated: (workflow: Workflow) => void\n}\n\n/**\n * Minimal NL → graph generator surface. Lets the user pick one of the\n * org's model provider connections, enter a prompt, and produces a\n * Workflow row whose `graph` is the LLM's output. The caller navigates\n * the editor to the new workflow once generation succeeds — validation\n * issues are surfaced as notifications so the user can iterate.\n */\nexport function AiWorkflowGenerateModal({ open, onClose, onGenerated }: Props) {\n const { error: notifyError, success: notifySuccess } = useNotifications()\n const t = useTranslations('agents.workflow')\n const [connections, setConnections] = useState<ModelProviderConnection[]>([])\n const [connectionId, setConnectionId] = useState('')\n const [prompt, setPrompt] = useState('')\n const [busy, setBusy] = useState(false)\n\n useEffect(() => {\n if (!open) return\n listModelProviderConnections()\n .then((items) => {\n setConnections(items)\n const firstEnabled = items.find((item) => item.enabled) ?? items[0]\n setConnectionId(firstEnabled?.id ?? '')\n })\n .catch((error: Error) => notifyError(error.message))\n }, [open, notifyError])\n\n async function handleSubmit() {\n if (!connectionId) { notifyError(t('aiErrorMissingConnection')); return }\n if (prompt.trim().length === 0) { notifyError(t('aiErrorMissingPrompt')); return }\n setBusy(true)\n try {\n const generation = await aiGenerateWorkflow({ prompt: prompt.trim(), connectionId })\n const workflow = await createWorkflow({ name: deriveWorkflowName(prompt) })\n const saved = await saveWorkflowDraft(workflow.id, generation.graph, { name: workflow.name })\n if (!generation.ok) {\n notifyError(\n t('aiWarnValidation'),\n [...generation.structuralIssues, ...generation.nodeIssues.map((issue) => `${issue.nodeId}: ${issue.message}`)].join('\\n'),\n )\n } else {\n notifySuccess(t('aiSuccessGenerated'))\n }\n onGenerated(saved)\n onClose()\n setPrompt('')\n } catch (error) {\n notifyError((error as Error).message)\n } finally {\n setBusy(false)\n }\n }\n\n return (\n <GlassModal\n open={open}\n onClose={onClose}\n title={t('aiTitle')}\n subtitle={t('aiSubtitle')}\n onSubmit={handleSubmit}\n showFormFooter\n submitLabel={busy ? t('aiGenerateBusy') : t('aiGenerate')}\n cancelLabel={t('aiCancel')}\n submitDisabled={busy}\n isLoading={busy}\n >\n <div className=\"space-y-4\">\n <label className=\"block text-sm font-medium text-slate-700 dark:text-slate-200\">\n {t('aiConnection')}\n <select\n className=\"mt-1 w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 dark:border-white/10 dark:bg-white/5 dark:text-slate-100\"\n value={connectionId}\n onChange={(event) => setConnectionId(event.target.value)}\n disabled={busy}\n >\n <option value=\"\">{t('aiConnectionPlaceholder')}</option>\n {connections.map((connection) => (\n <option key={connection.id} value={connection.id}>\n {connection.name} {connection.enabled ? '' : t('aiDisabledSuffix')}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block text-sm font-medium text-slate-700 dark:text-slate-200\">\n {t('aiPromptLabel')}\n <Textarea\n rows={6}\n className=\"mt-1 w-full\"\n placeholder={t('aiPromptPlaceholder')}\n value={prompt}\n onChange={(event) => setPrompt(event.target.value)}\n disabled={busy}\n />\n </label>\n\n <p className=\"text-xs text-slate-500 dark:text-slate-400\">\n {t('aiFooterNote')}\n </p>\n </div>\n </GlassModal>\n )\n}\n\nfunction deriveWorkflowName(prompt: string): string {\n const trimmed = prompt.trim().replace(/\\s+/g, ' ')\n if (trimmed.length <= 60) return trimmed\n return `${trimmed.slice(0, 57)}…`\n}\n","/**\n * WorkflowTemplateModal\n * =====================\n *\n * Lets the user instantiate a pre-built workflow template (e.g. the\n * product-pricing dashboard flow) from the workflows list page. The template\n * requires a `connectionId` that references one of the org's\n * `model_provider_connections` rows — we load the list on open so the\n * picker is always fresh.\n *\n * Why not inline in `workflows-page-client.tsx`? Two reasons:\n * 1. Keeps the modal focused: one component, one responsibility.\n * 2. Makes the flow testable end-to-end without mounting the whole page.\n */\n\n'use client'\n\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { GlassModal } from '@ui/index'\nimport { useNotifications } from '@ui/components/notifications'\nimport { useTranslations } from '@ui/lib/i18n-context'\nimport {\n createWorkflowFromTemplate,\n listModelProviderConnections,\n listWorkflowTemplates,\n type ModelProviderConnection,\n type WorkflowTemplateSummary,\n} from './workflow-api-client'\nimport type { Workflow } from '@ui/astrlabe/contracts'\n\nexport interface WorkflowTemplateModalProps {\n open: boolean\n onClose: () => void\n onCreated: (workflow: Workflow) => void\n}\n\nexport function WorkflowTemplateModal({ open, onClose, onCreated }: WorkflowTemplateModalProps) {\n const tWorkflow = useTranslations('agents.workflow')\n const tCommon = useTranslations('common')\n const { error: notifyError, success: notifySuccess } = useNotifications()\n\n const [templates, setTemplates] = useState<WorkflowTemplateSummary[]>([])\n const [connections, setConnections] = useState<ModelProviderConnection[]>([])\n const [templateId, setTemplateId] = useState<string>('')\n const [connectionId, setConnectionId] = useState<string>('')\n const [name, setName] = useState<string>('')\n const [isLoading, setIsLoading] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n // Load templates + connections when the modal opens. Clear prior state so\n // reopening feels fresh.\n useEffect(() => {\n if (!open) return\n let cancelled = false\n setIsLoading(true)\n setTemplateId('')\n setConnectionId('')\n setName('')\n ;(async () => {\n try {\n const [tpls, conns] = await Promise.all([\n listWorkflowTemplates(),\n listModelProviderConnections(),\n ])\n if (cancelled) return\n setTemplates(tpls)\n setConnections(conns)\n if (tpls.length > 0) {\n const firstTemplate = tpls[0]\n if (firstTemplate) setTemplateId(firstTemplate.id)\n }\n if (conns.length > 0) {\n const firstConnection = conns[0]\n if (firstConnection) setConnectionId(firstConnection.id)\n }\n } catch (error) {\n if (!cancelled) notifyError((error as Error).message)\n } finally {\n if (!cancelled) setIsLoading(false)\n }\n })()\n return () => {\n cancelled = true\n }\n }, [open, notifyError])\n\n const selectedTemplate = useMemo(\n () => templates.find((t) => t.id === templateId),\n [templates, templateId],\n )\n\n const canSubmit =\n !isLoading && !isSubmitting && templateId.length > 0 && connectionId.length > 0\n\n const handleSubmit = useCallback(async () => {\n if (!canSubmit) return\n setIsSubmitting(true)\n try {\n const created = await createWorkflowFromTemplate(templateId, {\n connectionId,\n name: name.trim().length > 0 ? name.trim() : undefined,\n })\n notifySuccess(tWorkflow('templateCreatedSuccess'))\n onCreated(created)\n onClose()\n } catch (error) {\n notifyError((error as Error).message)\n } finally {\n setIsSubmitting(false)\n }\n }, [canSubmit, templateId, connectionId, name, onCreated, onClose, notifySuccess, notifyError, tWorkflow])\n\n return (\n <GlassModal\n open={open}\n onClose={onClose}\n title={tWorkflow('createFromTemplate')}\n subtitle={selectedTemplate?.description ?? tWorkflow('createFromTemplateSubtitle')}\n gradient=\"from-indigo-500 to-purple-600\"\n showFormFooter\n onSubmit={(event) => {\n event.preventDefault()\n void handleSubmit()\n }}\n isLoading={isSubmitting}\n submitDisabled={!canSubmit}\n submitLabel={tCommon('create')}\n cancelLabel={tCommon('cancel')}\n maxWidth=\"lg\"\n >\n <div className=\"space-y-4\">\n {isLoading ? (\n <div className=\"shimmer h-32 w-full rounded-xl\" />\n ) : templates.length === 0 ? (\n <p className=\"text-sm text-gray-500 dark:text-gray-400\">\n {tWorkflow('noTemplatesAvailable')}\n </p>\n ) : (\n <>\n <label className=\"block\">\n <span className=\"mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300\">\n {tWorkflow('template')}\n </span>\n <select\n className=\"w-full rounded-lg border border-white/20 bg-white/70 px-3 py-2 text-sm text-gray-900 shadow-sm backdrop-blur dark:bg-gray-800/70 dark:text-gray-100\"\n value={templateId}\n onChange={(event) => setTemplateId(event.target.value)}\n >\n {templates.map((template) => (\n <option key={template.id} value={template.id}>\n {template.name}\n </option>\n ))}\n </select>\n </label>\n\n <label className=\"block\">\n <span className=\"mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300\">\n {tWorkflow('llmConnection')}\n </span>\n {connections.length === 0 ? (\n <p className=\"rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200\">\n {tWorkflow('noConnectionsHint')}\n </p>\n ) : (\n <select\n className=\"w-full rounded-lg border border-white/20 bg-white/70 px-3 py-2 text-sm text-gray-900 shadow-sm backdrop-blur dark:bg-gray-800/70 dark:text-gray-100\"\n value={connectionId}\n onChange={(event) => setConnectionId(event.target.value)}\n >\n {connections.map((connection) => (\n <option key={connection.id} value={connection.id}>\n {connection.name}\n {connection.providerSlug ? ` · ${connection.providerSlug}` : ''}\n </option>\n ))}\n </select>\n )}\n </label>\n\n <label className=\"block\">\n <span className=\"mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300\">\n {tWorkflow('workflowName')}\n <span className=\"ml-1 text-[10px] text-gray-400\">\n ({tCommon('optional')})\n </span>\n </span>\n <input\n type=\"text\"\n value={name}\n placeholder={selectedTemplate?.name ?? ''}\n onChange={(event) => setName(event.target.value)}\n className=\"w-full rounded-lg border border-white/20 bg-white/70 px-3 py-2 text-sm text-gray-900 shadow-sm backdrop-blur dark:bg-gray-800/70 dark:text-gray-100\"\n />\n </label>\n\n {selectedTemplate && selectedTemplate.tags.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5\">\n {selectedTemplate.tags.map((tag) => (\n <span\n key={tag}\n className=\"rounded-full bg-indigo-500/10 px-2 py-0.5 text-[10px] font-medium text-indigo-600 dark:bg-indigo-500/20 dark:text-indigo-300\"\n >\n {tag}\n </span>\n ))}\n </div>\n ) : null}\n </>\n )}\n </div>\n </GlassModal>\n )\n}\n"]}